
Ubuntu 8.04(目前還是beta版本)加入了新的聲音管理系統PulseAudio,它可以讓使用者集中管理所有聲音裝置、播放程式等等輸出/輸入的音量,雖然我覺得它的介面還有很多地方需要加強…這是題外話。
PulseAudio其中一個貼心的小功能就是可以將刺耳的X11系統鈴聲(主機板發出的"嗶"聲,很多的程式用來作為警示音)取代為一個音效檔案,電腦整體使用起來會更加悅耳。
要啟用這個功能,請先確認套件pulseaudio-module-x11已經安裝(它是PulseAudio音效系統的一個模組),一般來說在8.04安裝的時候就會隨著pulseaudio一起安裝了。如果安裝後你發現system bell已經被PulseAudio預設的可愛"咚"音效取代了,那就代表這個功能設定成功。
如果沒有設定成功,那麼我們就要進設定檔裡頭去改。
$sudo gedit /etc/pulse/default.pa在這個檔案裡頭分別找到兩行:
#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav把前面的#號刪除,然後再登出登入一次ubuntu,就可以成功取代了。如果沒有這兩行…可以試著自己把它們加進去。我們也可以用指令來重啟PulseAudio,這樣就不用登出登入了。按Alt+f2依序執行以下指令:
#load-module module-x11-bell sample=x11-bell
pulseaudio -k我們也可以把PulseAudio預設的"/usr/share/sounds/gtk-events/activate.wav"換成任何一個自己喜歡的wav檔案的路徑,如此我們就不用聽主機板發出的刺耳嗶聲囉~
pulseaudio --high-priority=1 -v



3 意見:
請問一下 PulseAudio可以讓使用者控制音效卡來決定現在聲音輸出到內建喇叭或是耳機或是兩者都有聲音這樣?? 謝謝
抱歉,我沒有這個方面的操作經驗~~不過我幫你到官方討論區(英文)找到了其他網友的解法,參見:
http://ubuntuforums.org/showthread.php?t=806620
謝謝你的回答,是否可再請問你一個問題
因為我最近在用藍芽耳機A2DP聽音樂
播放器是用banshee的,我有用一個按鈕就是可以切換藍芽耳機與電腦內建喇叭的功能
主要就是用執行一個script
#!/bin/bash
state=`gconftool --get /system/gstreamer/0.10/default/musicaudiosink | cut -d\ -f1`
if [ $state == "autoaudiosink" ]; then
gconftool --type string --set /system/gstreamer/0.10/default/musicaudiosink "alsasink device=bluetooth"
zenity --info --title="GStreamer" --text="Switched to Bluetooth headphones."
else
gconftool --type string --set /system/gstreamer/0.10/default/musicaudiosink "autoaudiosink"
zenity --info --title="GStreamer" --text="Switched to speaker output."
fi
echo musicaudiosink set to `gconftool --get /system/gstreamer/0.10/default/musicaudiosink`
但這個功能沒有辦法即使切換,要它繼續播到下一首歌或是我重新按播放的功能才會切換到另一個輸出
所以我研究過audio的架構:
■Audio
----------------------------------------------------------
│Application │
│ Banshee Amarok │
│ ↓ │
----------------------------------------------------------
│Desktop Environment │
│ ↓ ↓ ↓ │
│ GNOME KDE XFCE │
│ │
--------------------------DBus----------------------------
│ │
---------------------------------------------------------- GStreamer framework解碼器
│Sound Server │
│ ↓ ↓ │
│ ↓ ↓ │
│ ESD aRTs PulseAudio│
----------------------------------------------------------
│Kernel │
│ ↓ │
│ ALSA driver │
----------------------------------------------------------
│Hardware │
│ ↓ │
│ Soundcard │
----------------------------------------------------------
是否是我只控制到Gstreamer解碼器這邊的部份,如果要做到即時的話,是否說要控制到kernel那部份
才可以達到即時切換的功能,謝謝
張貼意見