J'essaie d'écouter la sortie audio d'un processus spécifique (A) et d'un autre processus (B) tout en redirigeant la sortie audio de A vers l'entrée audio de B. Cela équivaudrait à jouer de la musique sur Skype tout en écoutant à la fois la musique et votre ami et en permettant à votre ami de vous entendre.
J'ai essayé de suivre le tutoriel sur openSUSE (Google "Chercher (peut-être) un mélangeur audio à utiliser avec Pulse Audio") et même visionner la vidéo plusieurs fois. Auparavant, j’ai essayé JACK pour découvrir qu’il ne reconnaîtrait pas mon casque, le Logitech G35.
Je suis capable de jouer de la musique, d'avoir mon ami et moi, mais je ne peux pas envoyer ma voix en même temps. C'est soit ma voix, soit la musique que mon ami entend. Comment puis-je aussi envoyer ma voix?
Quelques images de ma configuration (utilisant une sortie nulle):
Onglet Lecture:
Onglet Enregistrement:
Après de nombreuses heures de bricolage, j'ai finalement réussi!
J'ai créé deux sorties nulles et créé deux boucles pour la première et une boucle pour la seconde.
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
Ensuite, j'ai ouvert PulseAudio Volume Control (pavucontrol)
Ce sont mes paramètres. Je les ai tapés dans l'ordre dans lequel ils apparaissent. Les nombres vont de haut en bas.
Onglet Enregistrement:
Onglet Lecture:
juste pour ne pas être confondu avec la "sortie null", spécifiez simplement les noms comme ceci:
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
Il est possible d'aller encore plus loin que l'amélioration proposée par @MikWind et de configurer les sources des périphériques de bouclage au moment de la création.
J'ai finalement eu un script bash pour configurer tout ce qui est constant:
#!/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
Ayant moi-même eu du mal plusieurs heures avant de comprendre suffisamment pour que cela fonctionne, j'ai compilé mes résultats de recherche (script, liens de documentation, explications) dans un git repo .
Je ne sais pas s'il est suffisamment clair pour être utile à qui que ce soit d'autre que moi, mais j'aimerais trouver ce genre de documentation lorsque je faisais mes propres recherches. Je recommanderais donc à quiconque d'essayer de faire le même genre de choses regarde.