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

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

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

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

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

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

Вкладка записи: enter image description here

20
задан 19 February 2013 в 05:11

3 ответа

После многих часов работы я наконец-то достиг этого!

Я создал два нулевых выхода и создал две петли для первой и одну петлю для второго.

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)

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

  • Вкладка записи:

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

        • Приложения:
          • Все приложения должны выводиться на вашу гарнитуру / динамик.
          • За исключением приложений, которые вы хотите записывать / отправлять через Skype Для параметра / stream должно быть установлено значение Null Output 1. Это будет первый «Null Output» в списке.
          • Виртуальные потоки:
            • Loopback вашей гарнитуры : Нулевой выход 2. Это будет второй «нулевой выход» в списке.
            • Обратная петля монитора нулевого выхода (1): ваша гарнитура.
            • обратная связь монитора нулевого Выход (2): ноль l Выход 2. Это будет второй «Нулевой выход» в списке.
0
ответ дан 19 February 2013 в 05: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
0
ответ дан 19 February 2013 в 05:11

Можно пойти еще дальше, чем улучшение, предложенное @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-репо .

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

0
ответ дан 19 February 2013 в 05:11

Другие вопросы по тегам:

Похожие вопросы: