警告
最新的來源使用一些核心組件的新名稱:
bluealsa
守護程序現在稱為bluealsad
bluealsa-cli
實用程序現在稱為bluealsactl
有關更多信息,請參見從版本4.3.1或更早版本遷移的Wiki指南。
該項目是Bluez和Alsa之間直接整合的重生。由於Bluez> = 5,因此已刪除內置集成,以支持第三方音頻應用。從現在開始,Bluez充當音頻應用程序之間的中間件,該應用程序實現了藍牙音頻配置文件和藍牙音頻設備。
當前的狀態是,要從/到藍牙設備,必須安裝通用音頻服務器,例如PipeWire或Pulseaudio,或使用Bluez版本4,該版本4被貶低且未經許可。
該項目創建並維護了一種名為Bluealsa的產品,它可以通過該產品獲得與PulseAudio相同的藍牙音頻配置文件支持,但依賴性較少,並且在軟件堆棧中的級別較低。 Bluealsa登記Bluez中所有已知的藍牙音頻曲線,因此從理論上講,每個藍牙設備(具有音頻功能)都可以連接。
Bluealsa專為用於小型,低功率,專用的音頻或視聽系統而設計,在該音頻或視聽系統中,不需要脈衝或管道的高級音頻管理功能。目標系統必須能夠與其所有音頻應用程序直接與ALSA接口正確運行,並且一次只使用每個藍牙音頻流,一次只有一個應用程序。在這樣的系統中,Bluealsa為現有的ALSA聲卡支持添加了藍牙音頻支持。請注意,這意味著應用程序受ALSA API的功能的限制,並且不可用音頻服務器的高級音頻處理功能(例如Pulseaudio和PipeWire)。
Bluealsa由守護程序bluealsad
,Alsa插件和許多實用程序組成。基本上下文在此圖中顯示:
流程圖TD
ClassDef外部填充:#eee,stroke:#333,卒中寬度:4px,顏色:黑色;
ClassDef Bluealsa填充:#BBF,中風:#333,卒中寬度:4PX,顏色:黑色;
a [藍牙適配器] <-> b((藍牙<br/>守護程序))
a <-> c((藍色守護程序))
b < - dbus-> c
c < - dbus-> g(((bluealSactl)))
c < - dbus-> d((bluealsa-aplay))
d-> e([[alsa libasound])
e-> k [揚聲器]
c < - dbus-> f((bluealsa <br/> alsa插件))
f <-> h([[alsa libasound])
h <-> i((Alsa <br/>應用程序))
c < - dbus-> J((“其他D-Bus <br/>客戶端”))
c <-> l(((alsa midi <br/> sequencer))
l <-> m([[alsa libasound])
m <-> n((Alsa Midi <br/>應用程序))
A類,B,E,H,I,J,K,L,M,N外部;
C級,D,F,G Bluealsa;
Bluealsa的心臟是守護程序bluealsad
,它與Bluez Bluetooth Daemon bluetoothd
和本地藍牙適配器接口。它處理A2DP,HFP和HSP的配置文件連接和配置邏輯,並通過D-Bus將所得的音頻流提供給應用程序。
BlueALSA包含ALSA插件,這些插件隱藏了所有D-Bus細節,並允許應用程序使用ALSA PCM和混音器接口,以便現有的ALSA應用程序可以與使用聲卡PCMS和MIXER相同的方式訪問藍牙音頻設備。
如果是BLE MIDI,守護程序會直接在ALSA MIDI Sequencer中創建一個簡單的MIDI端口,以便ALSA MIDI應用程序可以以與將其連接到本地MIDI設備相同的方式連接到遠程BLE MIDI設備。
Bluealsa還包括許多實用程序應用程序。特別值得注意的是:
BluealSactl
允許BlueALSA系統的命令行管理的應用程序。
Bluealsa-aplay
一個應用程序來簡化使用BluealSA構建藍牙揚聲器的任務。
bluealsa-rfcomm
一個命令行應用程序,可為HFP/HSP設備訪問RFCOMM終端。
文件安裝中包含構建和安裝說明。MD,Wiki中提供了更詳細的指南。
Bluealsa的主要組成部分是一個名為bluealsad
的程序。默認情況下,該程序應在系統啟動期間作為根。它將在D-Bus System Bus中註冊org.bluealsa
服務,該服務可用於訪問配置的音頻設備。通常,Bluealsa充當Bluez和Alsa之間的代理。
bluealsad
守護程序必須運行,以配對,連接和使用遠程藍牙音頻設備。為了將音頻流式傳輸到藍牙耳機,首先必須連接設備。如果您不熟悉Linux上的藍牙配對和連接過程,則Wiki中有一個基本指南:藍牙配對和連接。
有關bluealsad
命令行選項的詳細信息,請諮詢Bluealsad手冊頁。
連接藍牙音頻設備時,可以像其他任何PCM設備一樣,使用帶有ALSA應用程序的bluealsa
虛擬PCM設備:
aplay -D bluealsa Bourree_in_E_minor.wav
如果連接了多個藍牙設備,則可以將目標指定為PCM的參數:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
請注意,此PCM設備基於ALSA軟件PCM I/O插件 - 它沒有關聯的聲卡,並且它將在ALSA內核Proc Interface中可用。
bluealsa
PCM設備的設置參數可以在Local .asoundrc
配置文件中設置:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
Bluealsa還允許從連接的藍牙設備捕獲音頻。為此,必須使用捕獲PCM設備,例如:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
除了用於高質量音頻的A2DP配置文件外,Bluealsa還允許通過SCO鏈接使用電話音頻連接。可以使用內置的HSP/HFP支持,該支持僅在規範中實現與音頻相關的部分,也可以將ONO服務作為後端使用。為了打開SCO Audio連接,一個人應切換到sco
配置文件,如下所示:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
為了控制輸入或輸出音頻級別,可以使用提供的bluealsa
控制插件。此插件允許調整音頻流的音量或簡單地靜音/取消靜音,例如:
amixer -D bluealsa sset ' <control name> ' 70%
其中控制名稱是帶有控制元件後綴的連接藍牙設備的名稱,例如:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
有關Bluealsa ALSA PCM設備和混音器設備的完整詳細信息,請諮詢Bluealsa插件手冊頁。
Bluez-Alsa Project Wiki還有許多文章,提供了更多使用這些插件的示例。
有關更高級的ALSA配置,請諮詢Alsaproject Wiki頁面提供的ASOUNDRC在線文檔。
可以使用Bluealsa創建藍牙驅動的揚聲器。為此,需要將音頻信號從BlueALSA捕獲PCM轉發到其他一些播放PCM(例如內置音頻卡)。為了簡化此任務,Bluealsa包括一個名為bluealsa-aplay
的程序,該程序充當簡單的Bluealsa播放器。連接藍牙設備(例如智能手機),並執行以下操作:
bluealsa-aplay XX:XX:XX:XX:XX:XX
有關bluealsa-aplay
的命令行選項的詳細信息,請諮詢Bluealsa-aplay手冊頁。關於Bluez-Alsa項目Wiki的文章也有一些文章,列舉了其使用的示例。
可直接從Bluealsa d-Bus API或使用bluealsa-aplay
作為方便的包裝器,可直接從以下內容獲得可用的藍色PCMS(由具有音頻功能的連接藍牙設備提供)列表:
bluealsa-aplay -L
該項目歡迎代碼,文檔和測試的貢獻。
請參閱《貢獻指南》以獲取詳細信息。
在故障排除指南中討論了最常見的錯誤。請檢查該文件以查看是否已經有解決您的問題的解決方案。
如果您無法在該文檔中找到解決方案或通過閱讀手冊頁,請搜索以前的問題(開放和關閉),並在提出新問題之前諮詢Wiki。不幸的是,Wiki沒有由Web搜索引擎索引,因此在線搜索您的問題不會發現其中的信息。
如果將問題報告為新問題,請使用適當的Bluez-Alsa Github發出報告模板,並儘可能完全完成模板的每個部分。
Bluealsa是根據MIT許可條款獲得許可的。有關詳細信息,請參見許可證文件。