藍芽耳機的使用
由於Linux下藍芽使用不及Windows下直觀,致使使用時會出現一些小問題。雖然是小問題,但是由於普通的操作都具有順序性,前面的中斷了,後面的哪怕再簡單,也無法繼續了。正好近期工作與藍芽與網路都有關,可以有時間和目標好好學習一下。閑話少說,進入正題。 我使用的Fedora 9, bluez的版本是
|-- bluez-gnome-0.26-1.fc9.i386.rpm |-- bluez-gnome-analyzer-0.26-1.fc9.i386.rpm |-- bluez-gnome-debuginfo-0.26-1.fc9.i386.rpm |
先說說藍芽耳機的使用吧: 開啟耳機,使之處於可尋找狀態(公司的Motorola耳機:開啟並長按,直到藍燈逐漸層亮,並不閃爍),在電腦上使用:
[ThinkPad]~$ hcitool scan Scanning ... 00:07:A4:F3:09:3C Motorola HT820 [ThinkPad]~$ |
可以看到已經掃描到了裝置。注意,電腦上的bluetooth服務要開啟。 我們將其地址記錄:00:07:A4:F3:09:3C 進入主目錄:
[ThinkPad]~$ cat .asoundrc pcm.bluetooth { type bluetooth device 00:07:A4:F3:09:3C } |
按上面的格式建立alsa的設定檔。 下 面我們進行與耳機的配對(為什麼要進行配對呢,配對究竟做了哪些工作呢,等我看完源碼後總結:實際上是建立藍芽物理鏈路ACL(Asynchronous Connectionless), 另外的一種鏈路是SCO(Synchronous Connection Oriented)主要用來傳輸對時間要求很高的資料通訊。)。 右鍵點擊狀態列上的藍芽表徵圖(藍色的,有個剪刀的圖案),選擇瀏覽裝置,並使耳機處於可尋找的狀態。 選 擇耳機,串連,在彈出的對話方塊中輸入0000(預設的PIN Personal Information Number),這樣,耳機就與電腦配對成功了。可能會彈出什麼Host is down什麼的,沒關係,這是因為在點擊串連後,對應的訊息處理函數裡執行了命令nautilus --no-default-window "obex://[xx:xx:xx:xx]"後報出來的資訊。 下面我們開始播放了 首先使用大家最熟悉的Mplayer
| [ThinkPad]/work$ mplayer -ao alsa:device=bluetooth mp3.mp3 |
這樣我們就可以通過耳機聽到動聽的音樂了。好,我們邊聽音樂,邊說說其他的播放器怎麼使用藍芽耳機。 gstreamer也是開源軟體中非常有名的播放工具:
| [ThinkPad]/work$ gst-launch filesrc location=mp3.mp3 ! decodebin ! alsasink device=bluetooth sync=false |
你還可以通過自己編譯bluez-utils-3.32,請注意多加一個參數--enable-gstreamer,這樣在編譯後就會有一個libgstbluetooth.so 的gstreamer的外掛程式,將其放入/usr/lib/gstreamer目錄下
| gst-launch filesrc location=mp3.mp3 ! decodebin ! audioconvert ! audioresample ! sbcenc ! a2dpsink device=00:07:A4:F3:09:3C |
這樣也可以聽到,這就是Bluetooth中非常有名的A2DP(Advance Audio Distribution Profile),如果你還有更深的興趣,你可以看看gst對a2dpsink及sbcenc參數的調節,呵呵。 咱們看看Totem這個Linux下預設安裝的播放器怎樣使用bluetooth:
| [ThinkPad]~$ gconftool-2 -t string -s /system/gstreamer/0.10/default/musicaudiosink "sbcenc ! a2dpsink device=00:07:A4:F3:09:3C" |
這其實是修改了~/.gconf/system/gstreamer/0.10/default/%gconf.xml中的musicaudiosink。這裡必須要有libgstbluetooth.so,或者
| [ThinkPad]~$ gconftool-2 -t string -s /system/gstreamer/0.10/default/musicaudiosink "alsasink device=bluetooth" |
不再使用時,
| [ThinkPad]~$ gconftool-2 -t string -s /system/gstreamer/0.10/default/musicaudiosink "autoaudiosink" |
有個小小的遺憾是還無法使用耳機上“前進”,”後退“的按鍵。 以上很多內容來自: http://wiki.bluez.org/wiki/HOWTO/AudioDevices 有興趣的朋友可以看看。 |