fedora 下音频系统设置整理(音频播放速度过快)

这里先说一下我的机器的情况,我有两块声卡,一块是集成的AC97,一块是乐之邦出的LILO III五周年USB声卡。

然后,当然是我所遇到的情况:
在升级到fedora 11之前,我把fedora 10里的pulseaudio直接给卸载掉了,那么系统里混音播放的任务就全部交给ALSA了,确实运行得很好,并且gstreamer没有pulseaudio的支持似乎仍然是可以工作的。
但是升级到fedora11问题就来了,pulseaudio在系统升级的时候又被安装了,并且USB声卡出现爆音了。实际上我认为这个可能是pulseaudio的问题而不是ALSA的问题,因为播放器直接使用ALSA而不通过pulseaudio的时候没有出现爆音。

所以我仍然想要卸载掉pulseaudio来解决问题,但是这回有麻烦了:
一方面,蓝牙的包依赖于pulseaudio的包,所以需要避开依赖关系,没有蓝牙的朋友可以无视;
另一方面,Gnome面板里的音量调节被集成到pulseaudio这个包里了,所以卸载pulseaudio调节音量就比较麻烦了;
最后,使用gstreamer作为后端的播放器,比如totem,rhythmbox无法工作了。



所以,我必须做一个选择啦,幸运的是方案还是很多的:

第一种方案,就是直接卸载掉pulseaudio。
如果你没有蓝牙,并且也不在乎面板上没有音量调节按钮,甚至也不许要使用totem和rhythmbox的话删掉也是无所谓了。一劳永逸。
引用:
yum remove pulseaudio
无法调节音量?用gst-mixer吧:
引用:
yum install gst-mixer
第二种方案,就是通过“桥接”的方法把pulseaudio的输出作为ALSA的一个混音频道来处理。
这个方案可以参考这篇帖子,作者原帖,很权威哦:
http://forum.ubuntu.org.cn/viewtopic.php?t=135217
继续引用:
引用:
方法:
a. 关闭Gnome“登陆“音乐 (如果你使用步骤c,可以跳过这一步)
gnome-sound-properties
->Sounds->
把Log in音乐改為No sound。

b. 修改/etc/pulse/default.pa
gksu gedit /etc/pulse/default.pa

找到:
#load-module module-alsa-sink ...
改成
load-module module-alsa-sink device=dmix

找到: (解决录音问题,如skype和audacity)
load-module module-hal-detect
改成:
#load-module module-hal-detect

c. (做了步骤a,就不需要这一步)
找到:
load-module module-suspend-on-idle
改成
#load-module module-suspend-on-idle

这样,通过使用dmix,PulseAudio就不会霸占整个audio系統。PulseAudio將成為alsa的其中一個MixChannel。然后,ALSA和PulseAudio就能很好地共存。以候都不再需要什么libflashsupport forpulseaudio了。
这个方案实现起来是很简单的,对于一块声卡的朋友来说是没有什么问题的。
但是我这里不行了,pulseaudio只能识别出一块叫做dmix的声卡(就是dmix混音频道啦),而这块声卡究竟是USB声卡还是集成声卡则取决于ALSA把哪块声卡作为声卡0来处理。而pulseaudio独占控制ALSA的时候则能够识别出不同的声卡,所以总能够使用正确的声卡进行输出。

第三种方案,使用pulseaudio来管理声音。
需要注意的是此时pulseaudio独占了ALSA。
使用pulseaudio需要解决的主要问题是各种程序对pulseaudio的支持,以下就列举几个典型好了:
1.mplayer:
引用:
mplayer是支持pulse作为输出的,ao设置成pulse就好了,不用我废话吧。
2.wine+foobar2000:
引用:
使用wine运行foobar2000可能是无声的,这是应该是因为使用了ALSA或者OSS作为音频驱动程序,而此时pulseaudio独占了ALSA,所以wine没法访问资源。
默认情况下安装wine是不会安装wine-pulseaudio的,安装wine-pulseaudio:
引用:
yum install wine-pulseaudio
运行winecfg,在音效设置里把驱动一项改成pulseaudio驱动就可以了。
但是这样仍然有可能出现爆音,原因还没弄清楚,但是只要把DirectSound硬件加速改成“软件模拟”就好了。
3.flashplayer:
引用:
flashplayer是不支持pulseaudio的(今天以前吧,明天不知道怎么样),使用的是ALSA作为输出。
所以如果想要看在线视频就会发现没有声音,因为pulseaudio独占了ALSA,想要出声即使杀死pulseaudio也并非每次凑效。

解决的办法是安装libflashplayer插件。
如果是在ubuntu下可以通过安装插件: apt-get install libflashsupport来解决,令flashplayer通过pulseaudio来进行输出;但是在fedora 11下yumlist竟然找不到libflashsupport这个包。所以只能求助于rpmfind啦,这里给一个现成的链接:
http://rpmfind.net/linux/rpm2html/se...submit=Search+...
可以找到F9用的包,能用就行了。实际上我的做法直接把这个包给解压,然后把libflashsupport.so这个文件丢到/usr/lib就完事了,因为安装的时候提示有无法解决的依赖问题,不过事实证明仍然是可用的;需要注意的是,这可能引起你的浏览器频繁崩溃( firefox :3.5b4 ; flash-plugin : 10.0.22.87)。


如果说有什么理由要使用pulseaudio的话,那么只能说是pulseaudio对于多个声卡的管理比较好吧,并且这样可以使整个音频系统更为统一一点;
问题也是有的:爆音,延迟。希望在后续版本里可以得到解决。



关于音量调节的一些小细节,我认为有必要做一些说明的,一下是我所知的情况。
在gnome_fedora 11下进行音量调节可以通过这么几个小工具来实现:
引用:
gnome-voluem-control.....pulseaudio提供的音量调节,可以调节pulseaudio混音的音量。面板上的音量调节条也是这个程序提供的。
alsamixer...........................终端下使用,可用于设置声卡音量。
gst-mixer...........................alsamixer的图形界面吧?
gnome-volume-control所调节的是pulseaudio传递到声卡之前的音量,也就是pulseaudio混音的总音量;
alsamixer所调节的是声卡的本身的音量则是PCM(所谓波形)或者Master(主音量),而pulseaudio并不管理这些东西。
所以,有些程序使用pulseaudio,而有些程序使用ALSA则音量调节实际上处于不统一的状态,方案二就属于这种情况:在fedora11下使用方案二则会发现对于使用ALSA的程序,面板里那个音量调节不起作用了,因为混音是通过pulseaudio完成的;在fedora10下,这个音量调节调节的实际上调节的是Master或者PCM。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值