[FZH] Linux中的声音体系

David Young dhyang555在gmail.com
星期六 二月 26 14:04:02 UTC 2011


在 2011年2月26日 下午8:46,Jiahua Huang <jhuangjiahua在gmail.com>写道:

> 不,
> 普通的声卡 alsa 开了软混音就不会独占了,
> 好的声卡还可以硬件混音(同时也可能有 alsa 驱动)
> OSS4 也支持混音,不会独占。
>
> 你说你的源码编译鼓捣出来的系统 alsa 不能混音,应该是发行版的 Bug(大概是贱兔?
>
>
ALSA可以混音,只是独占声卡。
我对Linux的声音体系也很糊涂,但有下面几种情况:
1. 系统没安装PulseAudio,打开Totem播放,再打开Audacious,就会出现pcm_open_write
failed之类的错误提示,但是单独使用时,都正常。
2. 安装PulseAudio后,Totem和Audacious(选择PulseAudio Output Plugin)可以同时发声。
3 安装PulseAudio后,只要Audacious选择ALSA Output Plugin 输出,Totem就不能发声。
4.在Audacious通过PulseAudio输出播放的同时,改变其输出为ALSA Output Plugin,则提示pcm_open_write
failed
所以综合以上几种情况,我得出结论:

Audacious--------------------->ALSA
Gstreamer--------------------->ALSA
(貌似不可以通过Totem调整声音输出,所以Gstreamer支持PulseAudio后,这个情况可能并不会发生。)
Audacious--------------------->PulseAudio--------------------->ALSA
Gstreamer--------------------->PulseAudio--------------------->ALSA

使用ALSA
混音时,都会独占声卡。而PulseAudio的作用正是对支持PulseAudio的程序实现混音,由PulseAudio调用ALSA实现发声。
另外我还有一个猜想,如果系统同时使用两个声音服务器,这两个声音服务器之间会不会也独占声卡呢?各位大牛指点。

是LFS ,没用过Gentoo,也不打算用。


关于邮件列表 Chinese 的更多信息