2

Такое поведение проявляется по крайней мере в Ubuntu 13.10 и Ubuntu 14.04.

Я играю звуки с помощью команды play из пакета sox из командной строки. Он отлично работает со мной, пользователем, который входит в X. Однако, когда я использую root, он больше не будет работать:

% play /usr/share/sounds/alsa/Front_Center.wav
play FAIL sox: Sorry, there is no default audio device configured

Сама команда отлично работает, как и я. Это то, что должно быть?

Вот мои установленные пакеты sox (т.е. у меня установлен libsox-fmt-pulse):

ii libsox-fmt-base:amd64  amd64 Minimal set of SoX format libraries
ii libsox-fmt-mp3:amd64  amd64 SoX MP2 and MP3 format library
ii libsox-fmt-pulse:amd64  amd64 SoX PulseAudio format I/O library
ii libsox2:amd64  amd64 SoX library of audio effects and processing
ii sox  amd64 Swiss army knife of sound processing

1 ответ1

2

Pulseaudio в Ubuntu настроен на использование сеансов для каждого пользователя. Это означает, что, хотя обычная учетная запись пользователя может с легкостью получить к ней доступ, как вы уже видели, она не настроена для одновременного использования другим пользователем (например, root).

Это не ошибка; это нормальное поведение, учитывая конфигурацию, с которой поставляется Ubuntu.

«Я потратил много часов на исследования в Интернете, тестирование различных настроек и общение с разработчиками Pulseaudio. Суть в том, что запуск pulseaudio в обычном пользовательском режиме позволит только активному сеансу, отмеченному ConsoleKit, получить доступ к аудиооборудованию».

Источник: https://help.ubuntu.com/community/MultiseatX

Там есть некоторая информация о том, как сконфигурировать Pulseaudio для запуска в качестве общесистемного экземпляра, а не использования конфигурации для пользователя, но это не лишено недостатков.

Со страницы руководства pulseaudio:

--system [= BOOL] Запускать как общесистемный экземпляр, а не как для пользователя. Обратите внимание, что это отключает некоторые функции PulseAudio и, как правило, не рекомендуется, если система не знает локальных пользователей (например, является тонким клиентом). Эта функция требует специальной настройки и специальной настройки пользователя UNIX. Настоятельно рекомендуется сочетать это с --disallow-module-loading (см. Ниже).

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

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