Trabajo en dos computadoras con un auricular USB. Quiero escuchar ambos conectando la salida de las computadoras que no son Linux a la entrada de línea de la computadora Linux (conector de audio azul) y mezclando la señal en la salida de auriculares de la computadora Linux usando PulseAudio.
pavucontrol muestra un dispositivo de entrada "Audio estéreo analógico incorporado" que me permite seleccionar puertos como "Entrada de línea" (seleccionado), "Micrófono frontal", "Micrófono trasero". Puedo ver el medidor de volumen del dispositivo reaccionando a la reproducción de audio en una máquina que no es Linux.
¿Cómo hago para que PulseAudio reproduzca esa señal de audio en el dispositivo de salida que elija?
Respuesta1
1. Cargue el módulo de loopback
pacmd load-module module-loopback latency_msec=5
crea un dispositivo de reproducción y de grabación.
2. Configurar los dispositivos en pavucontrol
En pavucontrol, en elGrabaciónpestaña, configure el dispositivo "Loopback"dedispositivo de entrada al dispositivo que recibe la señal de entrada de línea.
En elReproducciónpestaña, configure el dispositivo "Loopback"endispositivo de salida al dispositivo a través del cual desea escuchar la señal de entrada de línea.
3. Solución de problemas
Si la señal de audio tiene problemas, retire el módulo pacmd unload-module module-loopback
y vuelva a intentar con un latency_msec=
valor más alto
Notas adicionales
Es posible que su computadora moderna de rango medio pueda administrar fácilmente una latencia más baja con la latency_msec=1
opción:
pacmd load-module module-loopback latency_msec=1
Esta respuesta fue posible gracias aesta publicación en el foro. ¡Gracias!
Respuesta2
Como se indica en elrespuesta preferida
pacmd load-module module-loopback latency_msec=5
Lo que debería crear un dispositivo de reproducción y grabación, no parece funcionar en todos los casos. En ese caso, puedes intentar
pactl load-module module-loopback latency_msec=5
Observe los argumentos similares, usando pactl
A mí no me funcionó con pacmd, sí con pactl.
Nota: Ambas opciones son solo para Pulse Audio y no para Pipewire
Respuesta3
¡Tengo una situación muy similar aquí! 2 PC, una máquina Linux (mi principal) más una máquina Windows. Configuré algo agradable para automatizar la conexión de audio de DOS VÍAS, usando mis auriculares con la máquina Linux y Pulseaudio, ambos escucho la máquina con Windows, Y puedo hablar por el micrófono, a través de Linux, de regreso al micrófono de la máquina con Windows. en.
Obviamente, esto requerirá no 1, sino 2 cables AUX conectados entre las máquinas. Pero funciona de maravilla desde que lo descubrí una vez. Para que sea más fácil para cualquiera interesado en hacer lo mismo, compartiré mi guión aquí. Todo lo que debe hacer para que funcione es encontrar dos nombres de receptores de audio específicos para su máquina y colocarlos dentro de las variables del script, si son diferentes de las mías.
#!/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
Y para una solución de problemas guiada paso a paso de esta configuración (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'