Eu trabalho em dois computadores com um fone de ouvido USB. Quero ouvir ambos canalizando a saída dos computadores não-Linux para a entrada de linha do computador Linux (tomada de áudio azul) e mixando o sinal na saída de fone de ouvido do computador Linux usando o PulseAudio.
pavucontrol mostra um dispositivo de entrada "Áudio estéreo analógico integrado" que me permite escolher portas como "Entrada de linha" (selecionada), "Microfone frontal", "Microfone traseiro". Posso ver o medidor de volume do dispositivo reagindo à reprodução de áudio na máquina não Linux.
Como faço para que o PulseAudio reproduza esse sinal de áudio no dispositivo de saída de minha escolha?
Responder1
1. Carregue o módulo de loopback
pacmd load-module module-loopback latency_msec=5
cria um dispositivo de reprodução e gravação.
2. Configure os dispositivos no pavucontrol
No pavucontrol, noGravaçãoguia, defina o dispositivo "Loopback"dedispositivo de entrada para o dispositivo que recebe o sinal de entrada de linha.
NoReproduçãoguia, defina o dispositivo "Loopback"sobredispositivo de saída para o dispositivo através do qual você deseja ouvir o sinal de entrada de linha.
3. Solução de problemas
Se o sinal de áudio apresentar problemas, remova o módulo pacmd unload-module module-loopback
e tente novamente com um latency_msec=
valor mais alto
Notas Adicionais
Seu computador moderno de médio porte pode facilmente gerenciar latências mais baixas com a latency_msec=1
opção:
pacmd load-module module-loopback latency_msec=1
Esta resposta foi possível graçasesta postagem no fórum. Obrigado!
Responder2
Como afirmado noresposta preferida
pacmd load-module module-loopback latency_msec=5
O que deveria criar um dispositivo de reprodução e gravação não parece funcionar em todos os casos. Nesse caso, você pode tentar
pactl load-module module-loopback latency_msec=5
Observe os argumentos semelhantes, usando pactl
Para mim não funcionou com o pacmd, funcionou com o pactl.
Nota: Ambas as opções são apenas para Pulse Audio e não para Pipewire
Responder3
Eu tenho uma situação muito semelhante aqui! 2 PCs, uma máquina Linux (minha principal) e uma máquina Windows. Eu configurei algo legal para automatizar a conexão de áudio bidirecional, usando meu fone de ouvido com a máquina Linux e Pulseaudio, estou ouvindo a máquina Windows e sou capaz de falar no microfone, através do Linux, de volta ao microfone da máquina Windows em.
Obviamente, isso exigirá não 1, mas 2 cabos AUX conectados entre as máquinas. Mas funciona perfeitamente desde que descobri uma vez. Para facilitar para quem estiver interessado em fazer o mesmo, compartilharei meu script aqui. Tudo o que você precisa fazer para fazê-lo funcionar é encontrar dois nomes de coletores de áudio específicos para sua máquina e colocá-los dentro das variáveis do script para eles, se forem diferentes dos meus.
#!/usr/bin/env bash
# 2-way audio connection - Slaves 2nd device audio through this device:
# - Directs AUX in to default speakers (connect 2nd device -> AUX).
# - Directs Mic to AUX out (connect AUX out -> 2nd device AUX in).
#
# Then sleeps forever. Stops audio redirection when killed.
#
# Requires:
# sudo apt-get install pactl
#
# Manual Process:
# 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex
# 2) Find - look for "analog-stereo" (no frills) in both commands:
# pacmd list-sources | grep name:
# pacmd list-sinks | grep name:
# 3) Select - enter found name or ID in this command:
# pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink
# 4) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)
# 5) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS
# 6) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)
# 7) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_HEADSET_MIC
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'
auxinsource='alsa_input.pci-0000_00_1f.3.analog-stereo' # Get name of AUX in (Replace these with yours!)
micsink='alsa_output.pci-0000_00_1f.3.analog-stereo' # Get name of AUX out (Replace these with yours!)
set -e
printf '\n 1) Connect Audio IN (Win->)...'
defaultsink=$(pactl get-default-sink) # Get name of currently selected speakers
modulein=$(pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink) # Locked from manual selection in GUI, will not jump around
#modulein=$(pactl load-module module-loopback source=$auxinsource sink=$defaultsink) # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $defaultsink ' connected!' # Debug output
echo ' connected!'
printf '\n 2) Connect Audio OUT (<-Mic)...'
modulemic=$(pactl load-module module-loopback latency_msec=10 source_dont_move=1 sink=$micsink) # Locked from manual selection in GUI, will not jump around
#modulemic=$(pactl load-module module-loopback latency_msec=10 sink=$micsink) # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $micsink ' connected!' # Debug output
echo ' connected!'
printf '\n CTRL+C to stop' # Flavor text.
function cleanup
{
pactl unload-module $modulemic
if [ ! -z ${modulein+x} ]; then
pactl unload-module $modulein
else
echo
fi
}
trap cleanup EXIT
sleep infinity
E para solução de problemas guiada passo a passo desta configuração (opcional),
#!/usr/bin/env bash
# Troubleshooting steps for audioconnect
#
# Requires:
# sudo apt-get install pactl
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'
printf ' 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 2) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 3) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 4) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 5) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_MIC'
read -n 1 -s -r -p ''
echo ': OK'