如何在Ubuntu 11.04或更高版本中的单独X服务器中获取声音?


10

我配置了Ubuntu系统,以便能够在单独的X服务器上启动任何应用程序。在独立的X服务器上运行游戏或例如XBMC具有一些主要优点。

但是问题是,当您切换到第二台X服务器(Ctrl + Alt + F8)时,您听不到任何声音。奇怪的是,当切换回桌面(Ctrl + Alt + F7)时,您会突然听到第二台X服务器发出的声音。这意味着声音在起作用,但是当您在第二台X服务器中时却听不到声音。

在较旧版本的Ubuntu(例如Ubuntu 10.10)中,有一个命令(ck-launch-session),您可以在第二个X服务器中运行该命令,并且声音会起作用。不幸的是,此命令在Ubuntu 11.04及更高版本中不再具有该作用。这是我用来在单独的X服务器中启动XBMC的命令:

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

在Ubuntu 11.04或更高版本中的第二台X服务器中,如何启用声音?

相关错误报告:366404


我猜想您将需要将第二台xserver上的pulseaudio服务器(或者如果不使用pulseaudio则使用的任何声音服务器)的输出路由为第一台xserver上的pulseaudio服务器的输入-这是因为只有一个音频服务器(或者,如果您没有运行音频服务器,则只有一个应用程序)一次可以访问声卡。我不确定如何做到这一点,但希望它能使您知道在哪里看(pulseaudio文档)。
adempewolff 2012年

Answers:


3

当我做这种事情时,我必须成为“音频”小组的成员。这样,可以听到每个屏幕上的音频。一个问题:切换屏幕不会更改输出的音频。如果我有一个KDE实例在一个屏幕上运行并使用Amarok播放音乐,则可以在所有屏幕上听到它。

如果您(像我一样)不知道如何通过命令提示符将用户添加到组中,只需在Synaptic或软件中心中安装“ kuser”或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上,这仍然适用于我。
塞拉诺2015年

1

尝试通过使用在第二台X服务器上知道您的脉冲音频凭据 pax11publish -D :1 -e

(其中:1是第二台X服务器的显示号,通常:0是第一台X服务器的显示号,向上计数)

您正在运行的应用程序可能正在尝试从X11根Windows属性读取脉冲属性。

另外,您可能会陷入主要的控制台工具包f * ckup中。


感谢Paul的回答,但不幸的是,它没有用。我尝试从第一台和第二台X服务器上运行该命令。我用不同的应用程序测试了声音。
塞拉诺(Serrano)2012年

哇...那我真的没有办法解决,但是我很欣赏这个问题...
PaulHänsch2012年

工作了!不知道是否还需要加入组音频(我太懒了,无法删除和测试xD)
Aquarius Power
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.