¿Cómo puedo usar las transmisiones de audio virtual de PulseAudio para reproducir música a través de Skype?

18

Estoy tratando de escuchar la salida de audio de un proceso específico (A) y otro proceso (B) mientras redirijo la salida de audio de A a la entrada de audio de B. Esto equivaldría a reproducir música en Skype mientras escuchas tanto la música como a tu amigo y que tu amigo pueda escucharte.

Intenté seguir el tutorial sobre openSUSE (Google "Looking (maybe) para mezclador de audio para usar con Pulse Audio") e incluso vi el video varias veces. Intenté anteriormente con JACK solo para descubrir que no reconocerá mi auricular, el Logitech G35.

Puedo tocar la música, tener tanto a mi amigo como a mí, pero no puedo enviar mi voz al mismo tiempo. Es mi voz o la música que mi amigo escucha. ¿Cómo puedo enviar mi voz?

Algunas imágenes de mi configuración (utilizando una salida nula):

Pestaña de reproducción:

Pestaña de grabación:

    
pregunta Jake Thompson 19.02.2013 - 00:39

3 respuestas

22

¡Después de muchas horas de retoque, finalmente lo logré!

Creé dos salidas nulas y creé dos bucles para el primero y un bucle invertido para el segundo.

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

Luego abrí el control de volumen de PulseAudio (pavucontrol)

Estos son mis ajustes Los escribí en el orden en que aparecen. Los números van de arriba a abajo.

  • Pestaña de grabación:

    • Aplicaciones:
      • Todas las aplicaciones deben ingresar desde el auricular / micrófono.
      • Excepto que las aplicaciones a las que desea enviar el audio se deben establecer en una de las siguientes opciones. Si SOLO desea enviar el audio: monitor de salida nula 1. Será la primera "salida nula" en la lista. Si desea enviar tanto el audio como su voz: Monitor de salida nula 2. Será la segunda "salida nula" en la lista.
    • Streams virtuales:
      • Retroalimentación a salida nula (1): su auricular / micrófono
      • Loopback a su auricular / micrófono: salida nula 1. Será la primera "salida nula" en la lista.
      • Retroalimentación a salida nula: salida nula 1. Será la primera "salida nula" en la lista.
  • Pestaña de reproducción:

    • Aplicaciones:
      • Todas las aplicaciones deben enviarse a su auricular / altavoz.
      • Excepto que la (s) aplicación (es) que desea grabar / enviar a través de Skype / stream deben establecerse en Salida nula 1. Será la primera "Salida nula" en la lista.
    • Flujos virtuales:
      • Bucle invertido de sus auriculares: salida nula 2. Será el segundo "resultado nulo" en la lista.
      • Loopback del monitor de salida nula (1): el auricular.
      • Bucle invertido del monitor de salida nula (2): salida nula 2. Será el segundo "resultado nulo" en la lista.
respondido por el Jake Thompson 19.02.2013 - 19:31
11

solo para no confundirse con la "salida nula", solo especifique los nombres como este:

pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2
    
respondido por el MikWind 22.08.2013 - 23:16
0

Es posible ir más allá de la mejora propuesta por @MikWind y configurar las fuentes de los dispositivos de bucle invertido en el momento de la creación.

Finalmente obtuve un script bash para configurar todo lo que es constante:

#!/bin/bash

MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"

# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2

Al haber tenido dificultades varias horas antes de comprender lo suficiente para hacerlo funcionar, compilé el resultado de mi investigación (guión, enlaces de documentación, explicaciones) en un git repo .

No estoy seguro de si es lo suficientemente claro como para ser útil para alguien más que yo, pero me gustaría encontrar este tipo de documentación cuando hice mi propia investigación, por lo que recomendaría a cualquiera que intente hacer el mismo tipo de cosas para echar un vistazo.

    
respondido por el toadjaune 14.05.2017 - 12:01

Lea otras preguntas en las etiquetas