LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1899|回复: 15

多路音频( multiplex)-一篇很启发的文章!不再因alsa发愁!

[复制链接]
发表于 2006-3-22 00:42:19 | 显示全部楼层 |阅读模式
1. 忙了3天,查了n多的资料。刚刚有结果了。终于实现了multiplex.
2. 我的系统配置:  kernel-2.6.15.6 (FC4)肯自己配置的内核/gnome. 好像kde 下用不着非功夫了。所以用gnome的同志注意了哦。
3。 在配置内核时不要选oss. 仍然有oss 的也没有关系,看后面。
4。 绝对没有必要编译那个 alsa-driver,  网上有文说要编译,结果必定时'无法找到声音控制设备“。其实fc4已经将准备工作作好了。只要一个.asoundrc来用alsa的dmixer 就够了。下面是文章的连接:
http://www.linuxjournal.com/article/8234
为了方便内网的朋友,贴出来:
pcm.!default {
        type plug
        slave.pcm "dmixer"
}

pcm.dmixer  {
        type dmix
        ipc_key 1024   
        slave {
            pcm "hw:0,0"
            period_time 0
            period_size 1024
            buffer_size 4096
            rate 32000
}
        bindings {
            0 0
            1 1
        }
}

pcm.dsp {
        type plug
        slave.pcm "dmixer"
}
ctl.dmixer {
        type hw
        card 0
}

照搬那里的.asoundrc就可以了。
5。 关键了;在开启有声音输出的程序时,将alsa参出传给程序:如:
mplayer -ao alsa9:dmixer -aop list=volume:volume=0 \
  -framedrop foo.avi
alsaplayer -o alsa -d plug:dmixer cool-foo.mp3
--
搞定,easy吧!改用alsaplayer了
由于alsa自带了dmixer,调用dmixer来混音就ok了,那个asoundrc就是作这个的。概括的说:
applications + parameters "alsa" -> asoundrd->dmixer->multiplexing
如果麻烦输参数,就建launchers,将参出加进去,完了,click就可以运行了。
欢迎指正哦!

7. 补充:同志们还要加上alsa-oss,这个可以到alsa project下载。完了编译安装。 这个组建的作用是可以模拟oss,使用oss的程序不独占声卡。 这样,像realplayer这样霸道的软件不能独占声卡。同样也可以使xmms不会用oss输出来独占声卡。
将aoss传递的方法是: aoss name-of-application
发表于 2006-4-3 09:45:13 | 显示全部楼层
嗯,找了很久,多谢!  没人来顶一下这篇文章的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 11:02:19 | 显示全部楼层
因为可能有更复杂和有说服力的方法啊!
呵呵
其实:这个就是这样easy!是失败的尝试让问题被认为是复杂了--尤其是那个要编译alsa-driver的建议
回复 支持 反对

使用道具 举报

发表于 2006-4-3 15:04:23 | 显示全部楼层
2004年底
按照gentoo wiki里的一篇howto
我就告别了只能单一程序发声的历史

实际上在alsa-1.0.9之后,就不需要配置.asoundrc了
默认就会使用dmix作为default device
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 15:49:11 | 显示全部楼层
--
2004年底
按照gentoo wiki里的一篇howto
我就告别了只能单一程序发声的历史

实际上在alsa-1.0.9之后,就不需要配置.asoundrc了
默认就会使用dmix作为default device
--
即便这样,如果没有alsaoss,至少xmms不会规矩;完了asoundrc是用来控制虚拟设备的,如果你的gentoo里碰巧有了,那就没有必要了,并不说明所有相关的配置是不必要的。rpm包与自己编译作的gentoo有区别,呵呵,gentoo的用户会认为自己的系统是seamlessly merged,但rpm默认自带的 alsa-lib,alsa-uitils却需要重新用相同版本的tarball文件来编译重装,才能调用 aslaconf。尤其是自己编译过内核,那个alsa-driver在编译时甚至要求对应的内核源码包,就是因为它无法正确匹配 header文件,而在安装后导致无法找到volume control device, 即使修改所谓的modconf也不行。dmesg的结果是声卡驱动都没有载入了,尽管对声卡的支持是编入内核了的。
呵呵
要不你用fc4试试,自己编译那个alsa-driver看看还能不能找到声卡
当然,我没有攻击性啊,自是说我不会乱发自己没有实践过的东西
回复 支持 反对

使用道具 举报

发表于 2006-4-3 16:28:57 | 显示全部楼层
Post by sphinx

即便这样,如果没有alsaoss,至少xmms不会规矩;完了asoundrc是用来控制虚拟设备的,如果你的gentoo里碰巧有了,那就没有必要了,并不说明所有相关的配置是不必要的。rpm包与自己编译作的gentoo有区别,呵呵,gentoo的用户会认为自己的系统是seamlessly merged,但rpm默认自带的 alsa-lib,alsa-uitils却需要重新用相同版本的tarball文件来编译重装,才能调用 aslaconf。尤其是自己编译过内核,那个alsa-driver在编译时甚至要求对应的内核源码包,就是因为它无法正确匹配 header文件,而在安装后导致无法找到volume control device, 即使修改所谓的modconf也不行。dmesg的结果是声卡驱动都没有载入了,尽管对声卡的支持是编入内核了的。
呵呵
要不你用fc4试试,自己编译那个alsa-driver看看还能不能找到声卡
当然,我没有攻击性啊,自是说我不会乱发自己没有实践过的东西

alsaoss自然是需要的
很多软件用的还是需要oss声音系统,比如realplayer, flash player,在alsa架构下就需要oss模拟层
不过xmms来说却不是必需的
xmms可以直接使用alsa,不过可能你的系统默认没有提供吧

gentoo不提供.asoundrc
我也不用.asoundrc
至于alsa 1.0.8 到 1.0.9的变动你可以看一下
http://www.alsa-project.org/changes/v1-0-8--v1-0-9.txt
里面有这么一句
Use dmix/dsnoop for default PCM
还有你可以搜索下一“Gentoo下的多音频流完整解决方案“

看来你在安装alsa的时候是经历了一些曲折的
确实实践过
别人恐难避免这些弯路,除非看过你的这些话

不过在gentoo里
这些经验都是凝聚在ebuild里的
用户要做的仅仅是emerge而已
实在有问题还有irc, forum和wiki

顺便问一下,这里有人玩xgl么
回复 支持 反对

使用道具 举报

发表于 2006-4-3 17:15:05 | 显示全部楼层
我的FC5可以混音,有两个驱动可以选择,换一下就能了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 19:30:05 | 显示全部楼层
alsaoss自然是需要的
很多软件用的还是需要oss声音系统,比如realplayer, flash player,在alsa架构下就需要oss模拟层
不过xmms来说却不是必需的
xmms可以直接使用alsa,不过可能你的系统默认没有提供吧

--
如果你使用xmms*-rh9,那就没有默认的alsaso,如果你使用xmms-*-fc4,那就有,但此时的alsa“十分脆弱”,我不想在对这个帖子再说什么,关于“十分脆弱”:可以试试让xmms用alsaso,同时运行任何程序,你看看xmss是不是还播放着你喜欢的音乐!要清楚'xmms不是fc4自带的!


gentoo不提供.asoundrc
我也不用.asoundrc
--
这个并不等于别人不需要,并不说明fc4不需要!

至于alsa 1.0.8 到 1.0.9的变动你可以看一下
http://www.alsa-project.org/changes/v1-0-8--v1-0-9.txt
里面有这么一句
Use dmix/dsnoop for default PCM
还有你可以搜索下一“Gentoo下的多音频流完整解决方案
---
你说来说去还是gentoo,我说的是fc4!

看来你在安装alsa的时候是经历了一些曲折的
确实实践过
别人恐难避免这些弯路,除非看过你的这些话
--
谢谢!

不过在gentoo里
这些经验都是凝聚在ebuild里的
用户要做的仅仅是emerge而已
实在有问题还有irc, forum和wiki
--
所以您还是gentoo,呵呵!既然emerge就行了,那您得到了什么关于alsa真正实践性的东西呢,尽管您可能对此不屑一顾!!不要动气啊!

顺便问一下,这里有人玩xgl么
--
我不会完!


最后说说我的看法:
be careful and responsible when offering a suggestion!
回复 支持 反对

使用道具 举报

发表于 2006-4-3 20:56:03 | 显示全部楼层
Linux的软件,无论在哪个发行版,基础都是一样的,适用于gentoo的道理上也适用于别的发行版,不同的只是配置文件的位置、路径罢了。用dmix来支持多音频流确实不算新鲜。当然,设置的时候不同的发行版有些细节要注意一下。

无论如何,有了经验教训大家一起来分享总是好事,不必为了你用这个我用那个争论不休。
回复 支持 反对

使用道具 举报

发表于 2006-4-3 21:25:28 | 显示全部楼层
Post by sphinx
alsaoss自然是需要的
很多软件用的还是需要oss声音系统,比如realplayer, flash player,在alsa架构下就需要oss模拟层
不过xmms来说却不是必需的
xmms可以直接使用alsa,不过可能你的系统默认没有提供吧

--
如果你使用xmms*-rh9,那就没有默认的alsaso,如果你使用xmms-*-fc4,那就有,但此时的alsa“十分脆弱”,我不想在对这个帖子再说什么,关于“十分脆弱”:可以试试让xmms用alsaso,同时运行任何程序,你看看xmss是不是还播放着你喜欢的音乐!要清楚'xmms不是fc4自带的!


gentoo不提供.asoundrc
我也不用.asoundrc
--
这个并不等于别人不需要,并不说明fc4不需要!

至于alsa 1.0.8 到 1.0.9的变动你可以看一下
http://www.alsa-project.org/changes/v1-0-8--v1-0-9.txt
里面有这么一句
Use dmix/dsnoop for default PCM
还有你可以搜索下一“Gentoo下的多音频流完整解决方案
---
你说来说去还是gentoo,我说的是fc4!

看来你在安装alsa的时候是经历了一些曲折的
确实实践过
别人恐难避免这些弯路,除非看过你的这些话
--
谢谢!

不过在gentoo里
这些经验都是凝聚在ebuild里的
用户要做的仅仅是emerge而已
实在有问题还有irc, forum和wiki
--
所以您还是gentoo,呵呵!既然emerge就行了,那您得到了什么关于alsa真正实践性的东西呢,尽管您可能对此不屑一顾!!不要动气啊!

顺便问一下,这里有人玩xgl么
--
我不会完!


最后说说我的看法:
be careful and responsible when offering a suggestion!


FC系列不是用rpm的么?更容易啊。。emerge 还需要设置呢。虽然也许设置的地方不多。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表