如何让pulseaudio同时在KVM虚拟机(以root身份运行)和桌面应用程序(不以root身份运行)中播放声音?
似乎默认情况下,它一次只会为一个用户播放声音,而阻止所有其他用户。
例如,
我播放一些音乐:
mplayer ~/Music/*
Run Code Online (Sandbox Code Playgroud)
我的虚拟机开始于:
kdesu qemu-system-x86_64 -enable-kvm [... disks, network, etc. ...] -soundhw hda
Run Code Online (Sandbox Code Playgroud)
这会以 root 身份运行进程,并显示运行它的用户的 X。直到 mplayer 停止,声音才起作用。
如果在 root shell 中运行,我会得到:
pulseaudio: pa_context_connect() failed
pulseaudio: Reason: Connection refused
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: Device or resource busy
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize …
Run Code Online (Sandbox Code Playgroud)