3

Как в заголовке.

Возможно ли без настройки общесистемного импульсного сервера смешивать вывод звука из нескольких процессов, принадлежащих разным пользователям в Linux? У меня нет проблем с микшированием звука, когда все процессы принадлежат одному и тому же пользователю, но как только я пытаюсь использовать звук в процессах, принадлежащих разным пользователям (в частности, mpd и в настоящее время вошедшим в систему пользовательским программам), он переходит к первому приезжай, первым обслужен. Какой бы пользователь ни брал звуковую карту первым, он получает доступ, а процессы любого другого пользователя ждут, пока она не будет выпущена.

1 ответ1

0

Мне удалось разделить импульсный сервер пользовательского режима среди локальных пользователей через TCP.

Отредактируйте /etc/pulse/default.pa чтобы включить модуль TCP. Я в основном отключил аутентификацию, чтобы упростить настройку. Обратите внимание, что могут быть последствия для безопасности, если вы не единственный, кто использует компьютер.

load-module module-native-protocol-tcp auth-ip-acl = 127.0.0.1 auth-anonymous = 1

Перезапустите PulseAudio, если вы используете systemd, это можно сделать с помощью systemctl --user restart pulseaudio . Обратите внимание, что если уже работает несколько серверов PulseAudio, вам может потребоваться остановить их. В противном случае работает только тот, который начал первым.

Теперь PulseAudio должен прослушивать порт TCP, это можно проверить с помощью команды ss -ltp . Вы, вероятно, увидите что-то вроде этого:

LISTEN     0    0        *:4713       *:*                    
users:(("pulseaudio",pid=3130,fd=31))

который указывает, что PulseAudio прослушивает порт 4713.

Чтобы настроить клиентов, отредактируйте /etc/pulse/client.conf и включите автоматическое подключение:

auto-connect-localhost = да

По умолчанию это отключено в новых версиях PulseAudio.

Затем попробуйте сыграть немного аудио, ура!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .