昨天晚上翻译了《使你的系统支持多音频流 [Allow multiple programs to play sound at once]》,意犹未尽,呵呵,就拿自己的机器做实验,去装了那个不开源的OSS。试了以后感觉还不错,加上它虽然说是商业软件,但可以免费使用几个月,而且过期后可以重新下载安装来继续使用,对于它良好的表现来说,至少在现在linux上多音频流问题解决起来比较复杂的情况下,也算是值得了。下面就是安装的全过程:
1、为了避免麻烦,我移除了系统中的alsa驱动、esd的相关内容,只保留了alsa-lib、libao等。并将/etc/modprobe.conf中系统默认的oss驱动内容,和alsa声卡相关内容注释掉了。
2、从http://www.opensound.com/download.cgi 上下载驱动包。如果你的内核是使用的官方内核,没有自己编译,那么你和我一样,要使用NO REGPARM的版本。如果你编译内核并且使用了CONFIG_REGPARM=y,那么你就要下载REGPARM的版本。如果安装过程中出错,有可能是你下载了错误的版本,按照提示查看log,其中会有提示说你下载了错误的包。
代码:
# proz -k=2 ftp://www.se.opensound.com/pub/oss/linux/oss3992b-linux-x86-v26.tar.gz
我用的prozilla开了两个线程下载(因为那个服务器好像最多只支持两个线程。
3、把下载到的包拷贝到/tmp中,并解压缩。
代码:
# cp oss3992b-linux-x86-v26.tar.gz /tmp# cd /tmp# gunzip oss3992b-linux-x86-v26.tar.gz# tar xvf oss3992b-linux-x86-v26.tar
4、解压出来的文件中,有一个oss-install文件。检查权限,如果没有可执行权限,则:
代码:
# chmod +x *
5、下面的各步需要管理员权限,所以要先su。然后在 /sbin 下为lsmod建立一个软连接。因为oss的安装程序会到 /sbin 下寻找lsmod。不做这一步,安装过程会出错中断。检查你系统中已经加载的模块,把和声音有关的驱动先rmmod掉。这一步不做也可以,安装时程序会警告并寻问你是否由它来完成,那时只要回车即可。我这么做是为了稳妥起见。
代码:
# supassword:yourpassword# cd /sbin# ln -s /bin/lsmod# less /proc/modules# rmmod ... ... ...
6、执行安装程序。
代码:
# cd /tmp# ./oss-install
7、安装过程中除了要选择路径,需要人为参与的地方几乎没有,就是让你阅读一些条款,和安装注意事项等等。建议大概看一看,也有些有用的东西。
8、安装结束后,会进入设置页。在这里,你要在Add中添加一个叫做the 4Front Virtual mixer的软件混音器。添加完毕会回到设置页的主页面,顶部可以看到你的声卡和刚才添加的混音器。你还可以选择下面的两个testing中的一个,来测试oss是否工作正常。
9、如果是按默认路径安装的,启动oss的程序就是 /usr/lib/oss/bin/soundon。你可以把这个命令加入到任何启动脚本中,比如/etc/rc.local,来实现oss的启动自动加载(安装程序里的那个启动时加载的选项好像无效,要自己手动加……ft……)
10、现在你可以简单的测试一下你的支持多音频流的声音系统了
代码:
# sudo /usr/lib/oss/bin/soundon# mpg321 001.mp3 &# mpg321 002.mp3 &# mpg321 003.mp3 &
另外,oss默认支持的音频流好像是8个。如果你希望改动它,请参考相关文档。不过……谁会变态到用到8个以上……汗,听着mp3,看着电影,浏览着网页上的flash,QQ响了,gaim响了,系统警铃响了,这些全加一起,也不过才六个嘛。
补充一点,在/usr/lib/oss/docs/ 下,有许多有用的文档。类似KDE-howto之类。讲述了不同的情况下如何使oss良好的工作。有问题的时候,比如进了kde就不能发声了,不妨去查看一下。