Come posso utilizzare i flussi audio virtuali PulseAudio per riprodurre musica su Skype?

18

Sto provando ad ascoltare l'uscita audio di un processo specifico (A) e un altro processo (B) mentre reindirizza l'uscita audio di A all'ingresso audio di B. Questo sarebbe l'equivalente di riprodurre musica in Skype mentre ascolti sia la musica che il tuo amico e avere il tuo amico in grado di sentirti.

Ho provato a seguire il tutorial su openSUSE (Google "Guardando (forse) per il mixer audio per l'uso con Pulse Audio") su di esso e persino guardato il video più volte. Ho già provato JACK solo per scoprire che non riconoscerà il mio auricolare, il Logitech G35.

Sono in grado di suonare la musica, ho sentito sia il mio amico che io, ma non posso inviare la mia voce allo stesso tempo. È o la mia voce o la musica che il mio amico sente. Come posso inviare anche la mia voce?

Alcune immagini del mio setup (usando un output Null):

Scheda Riproduzione:

Scheda Registrazione:

    
posta Jake Thompson 19.02.2013 - 01:39

3 risposte

22

Dopo molte ore di bricolage l'ho finalmente raggiunto!

Ho creato due uscite Null e creato due loopback per il primo e un loopback per il secondo.

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

Successivamente ho aperto PulseAudio Volume Control (pavucontrol)

Queste sono le mie impostazioni. Li ho digitati nell'ordine in cui appaiono. I numeri vanno dall'alto verso il basso.

  • Scheda Registrazione:

    • Applicazioni:
      • Tutte le applicazioni devono essere inserite dall'auricolare / microfono.
      • Tranne che le applicazioni a cui si desidera inviare l'audio devono essere impostate su uno dei seguenti. Se si desidera inviare SOLO l'audio: Monitor of Null Output 1. Sarà la prima "Null Output" nell'elenco. Se vuoi inviare sia l'audio che la tua voce: Monitor of Null Output 2. Sarà la seconda "Null Output" nella lista.
    • Stream virtuali:
      • Da loopback a Null Output (1): l'auricolare / microfono
      • Loopback al tuo auricolare / microfono: Null Output 1. Sarà il primo "Null Output" nella lista.
      • Loopback su Null Output: Null Output 1. Sarà il primo "Null Output" nella lista.
  • Scheda Riproduzione:

    • Applicazioni:
      • Tutte le applicazioni devono essere inviate al tuo auricolare / altoparlante.
      • Tranne che le applicazioni che vuoi registrare / inviare tramite Skype / stream devono essere impostate su Null Output 1. Sarà il primo "Null Output" nella lista.
    • Stream virtuali:
      • Loopback dell'auricolare: Null Output 2. Sarà il secondo "Null Output" nell'elenco.
      • Loopback di Monitor of Null Output (1): Your headset.
      • Loopback di Monitor of Null Output (2): Null Output 2. Sarà il secondo "Null Output" nella lista.
risposta data Jake Thompson 19.02.2013 - 20:31
11

solo per non essere confuso con il "null output", basta specificare i nomi in questo modo:

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
    
risposta data MikWind 23.08.2013 - 01:16
0

È possibile andare anche oltre il miglioramento proposto da @MikWind e configurare i sorgenti dei dispositivi di loopback al momento della creazione.

Ho finalmente ottenuto uno script bash per configurare tutto ciò che è costante:

#!/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

Avendo faticato parecchie ore prima di capire abbastanza per farlo funzionare, ho compilato il mio risultato di ricerca (script, collegamenti alla documentazione, spiegazioni) in un git repo .

Non sono sicuro che sia abbastanza chiaro per essere utile a chiunque altro oltre a me, ma vorrei aver trovato questo tipo di documentazione quando ho fatto le mie ricerche, quindi consiglierei a chiunque cerchi di fare lo stesso tipo di cose da dare un'occhiata.

    
risposta data toadjaune 14.05.2017 - 14:01

Leggi altre domande sui tag