Як я можу використовувати віртуальні аудіо потоки PulseAudio для відтворення музики через Skype?


20

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

Я спробував дотримуватися підручника про openSUSE (Google "Шукаю (можливо)) мікшер звуку для використання з Pulse Audio") про це і навіть кілька разів переглядав відео. Я раніше спробував JACK лише для того, щоб дізнатися, що він не розпізнає мою гарнітуру - Logitech G35.

Я вмію відтворювати музику, маю і свого друга, і я чую її, але одночасно не можу надіслати свій голос. Це чи мій голос, чи музика, яку чує мій друг. Як я можу також надіслати свій голос?

Деякі фотографії мого налаштування (з використанням одного Null Output):

Вкладка відтворення: введіть тут опис зображення

Вкладка запису: введіть тут опис зображення

Відповіді:


23

Після багатьох годин майстерності я нарешті досяг цього!

Я створив два нульових виходу і створив два петлі для першого і один цикл для другого.

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 регулювання гучності (pavucontrol)

Це мої налаштування. Я набрав їх у тому порядку, в якому вони з’являються. Цифри йдуть згори вниз.

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

    • Заявки:
      • Усі програми повинні вводитись із гарнітури / мікрофона.
      • За винятком додатків, на які потрібно надіслати аудіо, слід встановити одне з наступних. Якщо ви ТИЛЬКО хочете надіслати аудіо: Монітор нульового виходу 1. Це буде перший "Нульовий вихід" у списку. Якщо ви хочете надіслати звук та голос: Монітор нульового виходу 2. Це буде другий "Нульовий вихід" у списку.
    • Віртуальні потоки:
      • Зворотний зв'язок до нульового виходу (1): Ваша гарнітура / мікрофон
      • Зворотний зв'язок на гарнітуру / мікрофон: Null Output 1. Це буде перший "Null Output" у списку.
      • Зворотний зв'язок до Null Output: Null Output 1. Це буде перший "Null Output" у списку.
  • Вкладка відтворення:

    • Заявки:
      • Усі програми повинні виводити на гарнітуру / динамік.
      • За винятком додатків, які потрібно записати / відправити через Skype / stream, слід встановити значення Null Output 1. Це буде перший "Null Output" у списку.
    • Віртуальні потоки:
      • Відключення гарнітури: Null Output 2. Це буде другий "Null Output" у списку.
      • Зворотний зв'язок монітора нульового виходу (1): Ваша гарнітура.
      • Зворотний зв'язок Monitor of Null Output (2): Null Output 2. Це буде другий "Null Output" у списку.

11

просто, щоб не плутати з "null Output", просто вкажіть такі імена:

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

1

Можливо йти навіть далі, ніж покращення, запропоноване @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 .

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.