Как я могу использовать виртуальные аудиопотоки PulseAudio для воспроизведения музыки через Skype?

19

Я пытаюсь прослушивать аудиовыход определенного процесса (A) и другого процесса (B) при перенаправлении аудиовыхода A на аудиовход B. Это было бы эквивалентно воспроизведению музыки в Skype, слушая музыку и друга, а также чтобы ваш друг мог вас слышать.

Я пробовал следовать руководству openSUSE (Google «Глядя (возможно) на аудиомикшер для использования с Pulse Audio») об этом и даже смотрел видео несколько раз. Я ранее пробовал JACK только, чтобы узнать, что он не узнает мою гарнитуру Logitech G35.

Я могу играть музыку, есть и мой друг, и я слышу это, но я не могу отправить свой голос одновременно. Это мой голос или музыка, которую слышит мой друг. Как я могу отправить свой голос?

Некоторые снимки моей установки (с использованием одного Null Output):

Вкладка воспроизведения:

Закладка записи:

    
задан Jake Thompson 19.02.2013 в 01:39
источник

3 ответа

22

После многих часов возиться я наконец достиг этого!

Я создал два Null Outputs и создал два замыкания для первого и одного loopback для второго.

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

Далее я открыл PulseAudio Volume Control (pavucontrol)

Это мои настройки. Я набрал их в том порядке, в котором они появляются. Числа идут вниз.

  • Вкладка «Запись»:

    • Область применения:
      • Все приложения должны вводиться с гарнитуры / микрофона.
      • За исключением приложений, которые вы хотите отправить аудио, должно быть установлено на одно из следующих. Если вы ТОЛЬКО хотите отправить аудио: Monitor of Null Output 1. Это будет первый «Null Output» в списке. Если вы хотите отправить как аудио, так и ваш голос: Monitor of Null Output 2. Это будет второй «Null Output» в списке.
    • Виртуальные потоки:
      • Loopback to Null Output (1): Ваша гарнитура / микрофон
      • Loopback на гарнитуру / микрофон: Null Output 1. Это будет первый «Null Output» в списке.
      • Loopback to Null Output: Null Output 1. Это будет первый «Null Output» в списке.
  • Вкладка воспроизведения:

    • Область применения:
      • Все приложения должны выводиться на гарнитуру / динамик.
      • За исключением приложений, которые вы хотите записать / отправить через Skype / stream, должно быть установлено значение Null Output 1. Это будет первый «Null Output» в списке.
    • Виртуальные потоки:
      • Loopback вашей гарнитуры: Null Output 2. Это будет второй «Null Output» в списке.
      • Loopback Monitor Null Output (1): Ваша гарнитура.
      • Loopback Monitor of Null Output (2): Null Output 2. Это будет второй «Null Output» в списке.
ответ дан Jake Thompson 19.02.2013 в 20:31
источник
11

, чтобы не путать с «нулевым выходом», просто укажите имена, подобные этому:

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
    
ответ дан MikWind 23.08.2013 в 01:16
0

Можно пойти еще дальше, чем улучшение, предлагаемое @MikWind, и настроить источники замыкающих устройств во время создания.

Наконец-то я получил скрипт bash для настройки всего, что является постоянным:

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

Собрав себя за несколько часов до того, как я понял, что это сработало, я собрал результаты своего исследования (сценарий, ссылки на документацию, объяснения) в git repo .

Я не уверен, что достаточно ясно, чтобы быть полезным кому-то другому, кроме меня, но мне хотелось бы, чтобы я нашел такую ​​документацию, когда я проводил собственное исследование, поэтому я рекомендую всем, кто пытается сделать тот же вид чтобы посмотреть.

    
ответ дан toadjaune 14.05.2017 в 14:01