Ubuntu下应用程序独占音频声道的问题解决


Ubuntu下应用程序独占音频声道的问题解决
 
【方法一】(针对无声或音频独占)
干掉Pulseaudio,只使用Alsa
 
执行以下命令:
sudo apt-get install alsa-oss libasound2 libasound2-plugins
sudo mv /etc/X11/Xsession.d/70pulseaudio ~/
gconftool-2 -s -t bool /apps/gnome_settings_daemon/plugins/sound/active false
 
#注意:gconftool-2 … false 整个是一条命令,请输入在同一行。
 
asoundconf unset-pulseaudio
sudo update-rc.d -f pulseaudio remove
 
然后执行
asoundconf list
输出应该是类似这样的情形:
Names of available sound cards:
Intel
(记下你的声卡名,比如这里的Intel)
然后执行:
asoundconf set-default-card Intel
(Intel请替换为你的声卡名)
 
(补充:个别用户会出现真正的声卡名和HDMI两个选项,请注意不要选HDMI(除非你输出到液晶电视))
 
如果想保留登入时的系统提示音,请编辑~/.bashrc文件:
gedit ~/.bashrc
在文件末尾加上:
export SDL_audiodriver=alsa
 
最后,打开系统->首选项->音效,将从上往下数前四个选项都选成 ALSA - Advanced … 
Felix注:经测试,不这么做好像也没问题。
 
至此,屏蔽pulseaudio并设置alsa已经完全解决。
 
【方法二】(针对音频独占)
我们让已经在成功运行于PulseAudio的继续使用PulseAudio。只支持ALSA的软件,继续使用ALSA。
 
解决方法:
gksu gedit /etc/pulse/default.pa
找到:
#load-module module-alsa-sink …
改为
load-module module-alsa-sink device=dmix
 
找到:
load-module module-suspend-on-idle
改为
#load-module module-suspend-on-idle
(重新logout再login)
 
另外:
找到: (解决录音问题,如skype和audacity)
load-module module-hal-detect
改为:
#load-module module-hal-detect
这样,通过使用dmix,PulseAudio就不会霸占整个audio系统。PulseAudio将成为alsa的其中一个Mix Channel。然后,ALSA和PulseAudio便能很好地共存。以后都不再需要什么libflashsupport for pulseaudio了。
 
还有,安装PulseAudio的控制器,好好享受PulseAudio的优势吧。
sudo apt-get install padevchooser
 
【方法三】(针对无声)
(注:如果点击屏幕右上的小喇叭图标,出现一个错误提示,则可以直接采用此方法)
如果以上设置仍然无效,可以尝试下载编译安装新版的alsa
(注:安装之前,请确认自己的内核为源里的最新版)
首先到http://www.alsa-project.org/下载最新的alsa-driver,alsa-lib和alsa-utils。
假设下载的文件放在~/alsa (/home/用户名/alsa)。
首先进行解压:
tar jxvf alsa-driver-xxx.tar.bz2
tar jxvf alsa-lib-xxx.tar.bz2
tar jxvf alsa-utils-xxx.tar.bz2
然后分别编译安装
cd ./alsa-driver-xxx
./configure && make
sudo make install
cd ../alsa-lib-xxx
./configure && make
sudo make install
cd ../alsa-utils-xxx
./configure && make
sudo make install
重启计算机(注意不是重启X)
 

相关内容

    暂无相关文章