Как получить звук на отдельном X-сервере в Ubuntu 11.04 или новее?


10

Я настроил свою систему Ubuntu так, чтобы я мог запускать любое приложение на отдельном X-сервере. Запуск игр или, например, XBMC на отдельном X-сервере имеет ряд важных преимуществ.

Проблема, однако, в том, что при переключении на второй X-сервер (Ctrl + Alt + F8) вы не слышите никакого звука. Как ни странно, при переключении обратно на рабочий стол (Ctrl + Alt + F7) вы можете внезапно услышать звук со второго X-сервера. Это означает, что звук работает, но вы просто не можете его услышать, пока находитесь на втором X-сервере.

В более старых версиях Ubuntu (например, Ubuntu 10.10) есть команда ( ck-launch-session), которую вы можете запустить на втором X-сервере, и звук будет работать. К сожалению, эта команда больше не действует в Ubuntu 11.04 и более поздних версиях. Эту команду я бы использовал для запуска XBMC на отдельном X-сервере:

xinit /usr/bin/ck-launch-session /usr/bin/xbmc -- :1

Как включить звук, когда я нахожусь на втором X-сервере в Ubuntu 11.04 или более поздней версии?

Связанный отчет об ошибке: 366404


Я предполагаю, что вам нужно будет иметь выходные данные сервера pulseaudio (или любого другого звукового сервера, который вы используете, если не pulaudio) на втором сервере xserver, направляемом в качестве входа на сервер pulseaudio на первом сервере xserver - это потому, что только один Аудиосервер (или, если вы не используете аудиосервер, только одно приложение) может получить доступ к звуковой карте одновременно. Я не совсем уверен, как это сделать, но надеюсь, что это даст вам представление о том, где искать (документация pulseaudio).
adempewolff

Ответы:


3

Когда я делал такие вещи, я должен был быть частью "аудио" группы. Таким образом, звук с каждого экрана можно было услышать. Одна проблема: переключение экранов не меняет выводимый звук. Если бы у меня был экземпляр KDE, запущенный на одном экране и воспроизводящий музыку с Amarok, я смог бы услышать его на всех экранах.

Если вы (как и я) не знаете, как добавить пользователя в группу через командную строку, просто установите «kuser» в Synaptic или центре программного обеспечения или введите sudo apt-get install kuserв терминале.

Кажется, я помню, что у меня были некоторые проблемы с запуском от имени пользователя root с помощью программы запуска по умолчанию. Если он выдает ошибку, утверждая, что не может получить доступ к файлу, это, как правило, не является проблемой, просто убедитесь, что вы используете программу от имени пользователя root. Если он просто говорит вам, что вам нужно быть пользователем root, закройте окно, нажмите ALT + F2, затем введите gksudo kuser. Компьютер запросит ваш пароль, после чего Kuser загрузится правильно.


2
Спасибо за предоставленный ответ! Я не могу поверить, что ответ так прост. Однако я парень из командной строки, и sudo usermod -a -G audio $USERпосле перезагрузки системы делает свое дело. И, к счастью, вы все равно не услышите звук от других пользователей.
Серрано

Раньше это работало, но я переустанавливал Ubuntu, и он перестал работать
Aquarius Power

@ AquariusPower: это все еще работает для меня в Ubuntu 15.04.
Серрано

1

Попытайтесь сообщить свои учетные данные в импульсном аудио на втором x-сервере, используя pax11publish -D :1 -e

(где: 1 - номер дисплея вашего второго X-сервера, обычно: 0 - первый, считая вверх)

Приложение, которое вы запускаете, вероятно, пытается прочитать импульсные атрибуты из свойств корневых окон X11.

В качестве альтернативы вы можете застрять в основном консольном наборе f * ckup.


Спасибо за ваш ответ, Пол, но, к сожалению, это не сработало. Я попытался запустить эту команду как с первого, так и со второго X-сервера. И я проверил звук с различными приложениями.
Серрано

вау ... тогда у меня действительно нет решения, но я ценю проблему ...
Paul Hänsch

работал! не уверен, что для этого потребуется групповое аудио (мне лень снимать и проверять xD)
Aquarius Power
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.