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),然後試試有沒有聲音?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章