|
网上找到个oss2pulse 和 oss2jackd,它的方法是软件虚拟一个/dev/dsp,所有普通oss软件都可以同时发声了。当然你别想vmplayer会有多好的音质,不过比起padsp、aoss、LD_PRELOAD这些方法方便多了。
我是看这里做为起点,http://linuxmusicians.com/viewtopic.php?p=5862
能免则免的原则,所以不用jackd,用pulseaudio与桌面系统保持一致,下面说的也是用oss2pulse。
在这里简化地讲讲:
前提条件:
- pulseaudio已经在运行;
- 最好有编译好的内核源码(安装linux-headers可能也行);
- 安装了各种编译工具(automake、make、gcc等);
- 在root用户下进行。
(一)安装fusd
<1>
准备补丁,到 http://rapidshare.com/files/2348 ... tchset.tar.bz2.html 下载thorgal_patchset.tar.bz2
解压到某处,例如我放在/tmp,共3个文件:30-fusd.rules (udev规则文件)
patch-fusd.txt (fusd在内核2.6.29下编译需要这个补丁)
patch-oss2jack-0.25.txt <2>
编译安装,下面命令应该比较简单,不解释了:apt-get install fusd-kor-source
cd /usr/src
tar xjvf fusd-kor.tar.bz2
cd modules/fusd-kor/
cat /tmp/patch-fusd.txt | patch -p1
make
make install
#fusd的udev配置文件
cp /tmp/30-fusd.rules /etc/udev/rules.d/
/etc/init.d/udev restart
#开机就加载kfusd
echo kfusd >> /etc/modules
#禁用alsa的两个oss模块
echo "alias snd-pcm-oss off" >> /etc/modprobe.d/aliases
echo "alias snd-mixer-oss off" >> /etc/modprobe.d/aliases
#现在就手动加载kfusd
rmmod snd-pcm-oss snd-mixer-oss
modprobe kfusd
(二)安装oss2pulse
下面也是一堆命令:cd /usr/src
#下载oss2pulse
wget http://web.mit.edu/xiphmont/Publ ... 2pulse-20070111.tgz
tar xzvf oss2pulse-20070111.tgz
cd oss2pulse20070111
#纠正一下连接的路径
ln -s -f /usr/share/automake-1.10/compile ./
ln -s -f /usr/share/automake-1.10/depcomp ./
./configure
make
make install
#运行oss2pulse,不要放在开机时运行,最好让这条命令在启动pulseaudio之后才运行
oss2pulse -d 好了,现在ls -l /dev/dsp /dev/mixer,应该会看见新的设备
crw-rw---- 1 root audio 249, 0 05-21 02:52 /dev/dsp
crw-rw---- 1 root audio 248, 0 05-21 02:52 /dev/mixer
完毕。
题外话:
关于xmms2和mpd使用alsa的dmix多音频流插件cpu占用较高,原因是dmix要对各音频流转换采样率所致。也有缓解方法,这里不多说了,上网找吧;pulseaudio如何用dmix设备发声,也不在这里说了。
我看回以前自己的帖子,太多内容想一次讲明白,反而罗里罗嗦,什么都讲不清。
为免大家麻烦,我还是把补丁上传到这里好了。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|