Воспроизведение звука через два или более выходов/устройств

Я думаю, что это довольно простая концепция. У меня есть одна звуковая карта и одна пара наушников Bluetooth. Я хочу воспроизводить звук как через звуковую карту, так и через наушники Bluetooth.

Я полагаю, что в Windows есть флажки, позволяющие вам "проверять" выходы, чтобы включать / отключать их, но в Ubuntu, по-видимому, есть эквивалент селекторов радио (вы можете выбирать только по одному за раз).

Дополнительный вопрос: На аналогичной ноте у меня есть 5 аналоговых выходных каналов на моей звуковой карте (в дополнение к моему цифровому и HDMI аудио) - я хотел бы иметь возможность определять, что выходит из каждого из этих портов (например, "фронтальные динамики" на всех 5 или "спереди", "по центру", "сзади" и т.д.).

С paprefs у вас есть доступ к виртуальному устройству вывода, которое обеспечивает одновременный вывод на все подключенные звуковые карты / устройства:

sudo apt install paprefs 

Затем в терминале запустите paprefs, выберите вкладку "Одновременный вывод" и установите флажок "Добавить виртуальный вывод для одновременного вывода на все локальные звуковые карты".

paprefs

Дополнительно созданное устройство вывода звука для одновременный вывод может быть выбран в "Выход"; вкладка из меню настроек звука pulseaudio:

enter image description here

В этом примере он показан для устройства HDMI, но как только ваше устройство Bluetooth будет распознано, оно также будет доступно для одновременного вывода.

Для вступления изменений в силу может потребоваться перезапуск pulseaudio либо путем выхода из системы и повторного входа в сеанс, либо путем запуска pulseaudio -k в терминале.


В случае папрефы не выполняет эту задачу или, если вы предпочитаете, чтобы paprefs не устанавливался, используйте эту команду из командной строки:

pactl load-module module-combine-sink

Чтобы выгрузить модуль из командной строки и сбросить pulseaudio до значений по умолчанию, просто перезапустите pulseaudio с помощью pulseaudio -k или проблема

pactl unload-module module-combine-sink

Ubuntu

Я только что подтвердил, что это решение (4-летней давности) все еще работает на Ubuntu 14.04 LTS.

Устанавливать

Откройте терминал и введите sudo apt-get install paprefs перейдите на вкладку точно так, как показано на рисунке выше, и выберите нужную опцию.

Начальный запуск

Затем; оставаясь в терминале, введите pulseaudio -k чтобы отключить и перезапустить pulseaudio.

Затем перейдите в настройки звука, и вы увидите возможность вывода на несколько звуковых устройств.

Спасибо тому, кто написал paprefs, это блестящая маленькая программа, которую я действительно хотел бы видеть включенной в Ubuntu, не требуя дополнительной установки.

Apple Mac OS X

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

В Kubuntu 18.04, Plasma 5.12 paprefs не требуется, так как аналогичная настройка уже существует:

enter image description here

После перезагрузки должна стать доступна новая опция вывода, называемая “Одновременный вывод”.

enter image description here

Или в pavucontrol:

enter image description here


В 18.10 с Plasma 5.13.5 опция “Одновременный вывод” была удалена, поэтому paprefs это необходимо.

Я не смог заставить предложение Takkat работать из коробки в Debian 8.7, хотя я перезапустил систему. Я предполагаю, что вы выполнили предложение Такката по установке paprefs. Расширение в ответе Takkat, которое работает на основе Arch Linux вики где хранятся аналоговые входные и импульсные вызовы, которые "дуплексны"

# /etc/pulse/default.pa# http://unix.stackexchange.com/a/180374/16920load-module module-alsa-sink device=hdmi:0load-module module-combine-sink sink_name=combinedset-default-sink combined

Затем перезапустите pulseaudio:

pulseaudio -k

Чтобы дополнить отличный ответ от Takkat, я обнаружил, что имя по умолчанию, данное новому устройству, было чрезмерно длинным и искажало диалоговое окно настроек звука. Чтобы сократить это имя, мне пришлось дополнительно выполнить следующую команду:

gconftool --set --type string /system/pulseaudio/modules/combine/args0 sink_properties=device.description=Combined

Sound settings with combined device

Потому что LeonidMew спрашивал о 18.04 (я использую 18.04.2), вот моя версия.

Графический интерфейс paprefs попытался объединить один HDMI с одним аналоговым выходом вместо обоих hdmi. Поэтому я отредактировал файл /etc/pulse/default.pa как описано в Léo Léopold Hertz

$ gedit /etc/pulse/default.pa  # make changes as in method a or b below$ pulseaudio -k # then restart pulseaudio

Оба следующих метода работают сами по себе, поэтому выберите один из них (обязательно добавьте эти строки в начало файла, Я положил его сразу после .fail ! В противном случае это не сработает).

Способ А

load-module module-alsa-sink device=hw:0,0load-module module-combine-sink sink_name=combined

Способ В

load-module module-alsa-sink device=hw:1,3 sink_name=hdmiload-module module-alsa-sink device=hw:1,7 sink_name=hdmi2load-module module-combine-sink sink_name=combined slaves=hdmi,hdmi2set-default-sink hdmi-combined

Ссылка

Способ А

Для справки, в hw:0,0 исходит от aplay -l

$ aplay -l**** List of PLAYBACK Hardware Devices ****card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]  Subdevices: 1/1  Subdevice #0: subdevice #0card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]  Subdevices: 1/1  Subdevice #0: subdevice #0

Способ В

И 1:7 и 1:3 исходит от

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>        alsa.subdevice = "0"        alsa.device = "1"    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>        alsa.subdevice = "0"        alsa.device = "7"

В GNOME "настройки звука" я установил другой HDMI со 2-го монитора в качестве выходного сигнала, а затем повторно запустил команду

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>        alsa.subdevice = "0"        alsa.device = "1"    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>        alsa.subdevice = "0"        alsa.device = "3"

Чтобы убедиться в правильности этих цифр, я запустил

$ aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav$ aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Right.wav

которые звучали на их соответствующих мониторах.

Да, версия paprefs в репозиториях Ubuntu 18.04 бесполезна (потому что она по-прежнему считает, что GConf в моде и, следовательно, не работает). Лучшая альтернатива - это, знаете ли, самостоятельно загрузить “модуль-комбайн-приемник” PulseAudio (потому что это все, что “paprefs” делает за сценой в любом случае). Используйте команду “pactl load-module module-combine-sink” и проверьте раздел “Звуки” в настройках Ubuntu.

Я прочитал все ответы, проверив также дату ответа. Каково текущее решение для ubuntu 18.04?

В Ubuntu 19.10 решение с paprefs снова работает из коробки.

Ubuntu 20.04 - paprefs работал для всех жестко подключенных динамиков, после закрытия всех настроек звука и перезапуска pulsaudio killall pulseaudio, однако он отключил мой Bluetooth-динамик - пришлось повторно подключиться и переключиться на него и обратно на multioutput :slight_smile:

это работает, но время выбрано неудачно. теперь я понимаю, почему ни один профессионал не хотел писать программное обеспечение для Linux. полная звуковая архитектура представляет собой небольшой беспорядок. pulseaudio более ориентирован на сеть и поддерживает одно аудиоустройство. трудно создать точную синхронизацию между несколькими аудиоустройствами. Проблемы с синхронизацией просто нелегко решить.