由於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
有興趣的朋友可以看看。