藍芽音樂 A2DP 剖析
1.概述
A2DP(Advanced
Audio Distribution Profile)是藍芽的音訊傳輸協議,典型應用為藍芽耳機。A2DP協議的音訊資料在ACL Link上傳輸,這與SCO上傳輸的語音資料要區別。A2DP不包括遠端控制的功能,遠端控制的功能參考協議AVRCP。AVDTP則定義了藍芽裝置之間資料流控制程式碼的引數協商,建立和傳輸過程以及相互交換的信令實體形式,該協議是A2DP框架的基礎協議。A2DP與相關協議的附屬關係如下圖:
A2DP在協議棧中的位置如下圖所示:
2.A2DP的一些定義
GAVDP定義了兩種角色:
Initiator (INT) – This is the device that initiates a signaling procedure.【發起signaling的】
Acceptor (ACP) – This is the device that shall respond to an incoming request from the INT.【響應signaling的】
A2DP在此基礎上具體實現了連個角色:
Source (SRC) – A device is the SRC when it acts as a source of a digital audio stream that
is delivered to the SNK of the piconet.【輸出音訊stream的】
Sink (SNK) – A device is the SNK when it acts as a sink of a digital audio stream delivered
from the SRC on the same piconet.【接受音訊stream的】
這裡需要注意的是:一般在A2DP中Source和Sink的角色是固定的,而GAVDP的這兩個角色是可以互換的,只要是發起signaling的一方就為initiator。
一個Source和Sink的例項:
3.A2DP協議的限制
(1)不支援synchronized point-to-multipoint distribution。
(2)在Source和Sink端存在延遲。
(3)音訊資料的速率必須足夠小於藍芽的傳輸速率。
(4)不提供任何資料保護的方法
4.編碼
傳輸音訊資料必須在Source端編碼,在Sink端解碼。A2DP規定了下面幾種編碼型別:
5.SBC編碼格式
SBC是A2DP規定的強制支援的編碼格式,這裡我們具體只討論這一種編碼格式:
引數Channel Mode:
引數Block Length:
引數Subbands:
引數Allocation Method:
引數Minimum / Maximum Bitpool Value:
6.Media Packet Header與Media payload:
在第一部分資料的包裝中可以看出,在每一個Media payload上都會加上Media packrt header。主要包括以下幾個部分:
Timestamp (TS),Payload Type (PT),Marker (M) bit【置為全0】,Extension (X) bit【不使用,置為全0】。具體在AVDTP協議中定義,這裡不詳述。
Media payload的格式如下:
F bit – Set to 1 if the SBC frame is fragmented, otherwise set to 0.
S bit – Set to 1 for the starting packet of a fragmented SBC frame, otherwise set to 0.
L bit – Set to 1 for the last packet of a fragmented SBC frame, otherwise set to 0
RFA – 置為0.
Number of frames (4 bits) – If the F bit is set to 0, this field indicates the number of
frames contained in this packet. If the F bit is set to 1, this field indicates the number
of remaining fragments, including the current fragment. Thus the last counter value
shall be one. For example, if there are three fragments then the counter has value 3,
2 and 1 for subsequent fragments. This field is expressed by 4 bit UiMsbf.
7.A2DP的通訊過程
A2DP規定Sink個Source端有三種狀態:IDLE、OPEN和STREAM,通過下圖的流程進行狀態轉換:
Start Streaming:
OPEN狀態下經過Start Stream 過程就轉換到STREAMING狀態。
Connection Release:
在OPEN和STREAMING狀態下都可以通過Stream Release過程變為IDLE狀態。
Suspend:
只能從STREAMING狀態通過Stream Suspend過程變為OPEN。
Change Parameters:
相關文章
- 藍芽音樂之歌詞同步藍芽
- 已連線車載藍芽但放不了音樂 藍芽配對成功放不了音樂藍芽
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- 藍芽 HID 剖析(一)藍芽
- 藍芽 電話 HFP 剖析(一) --- 概述藍芽
- 藍芽(Bluetooth)音訊協議藍芽音訊協議
- 高價效比無線藍芽耳機推薦,享受優質音樂五款高音質藍芽耳機少不了藍芽
- 藍芽電話 HFP 剖析(三) --- flow解析藍芽
- 電腦怎麼連藍芽音響 藍芽音響連線電腦步驟藍芽
- 音響怎麼連線手機藍芽 音響連線手機藍芽的方法藍芽
- Android 藍芽音響開發Android藍芽
- 藍芽小鋼炮 - Bose 博士 Revolve 藍芽音響使用感受藍芽
- 電腦怎麼連線藍芽音響 臺式電腦連藍芽音響圖解藍芽圖解
- 藍芽耳機連上為什麼沒聲音 藍芽耳機已連線但就是沒聲音藍芽
- 藍芽耳機為什麼只有提示音沒有聲音 藍芽耳機一切正常就是沒聲音藍芽
- win10藍芽音響沒有聲音怎麼辦_win10藍芽音響連線成功沒聲音處理方法Win10藍芽
- 為什麼藍芽耳機連上卻沒有聲音 藍芽明明已連線但就是沒聲音藍芽
- 藍芽配對成功但沒有聲音怎麼辦 藍芽明明已連線但沒有聲音藍芽
- Flex無線藍芽耳機:降噪後專心致志的體驗音樂的魅力Flex藍芽
- ESP32 使用 MAX98357 呼叫ESP-A2DP庫播放藍芽音樂藍芽
- MacBook如何連線多個藍芽音響?Mac藍芽
- 兩臺藍芽音響組立體聲藍芽
- 微軟確認Win10系統5月更新將重新支援藍芽A2DP接收器微軟Win10藍芽
- win10藍芽連線音響的方法_win10系統怎麼連線小米藍芽音響Win10藍芽
- 膝上型電腦怎麼連線藍芽音響裝置 筆記本和藍芽音響連線藍芽筆記
- 藍芽藍芽
- Gear IconX無線藍芽運動耳機:不止是聽音樂那麼簡單藍芽
- win10藍芽音響已配對沒聲音怎麼辦_藍芽音響連線win10電腦沒聲音解決方法Win10藍芽
- 什麼藍芽耳機音質最好價效比高 2022五大藍芽耳機排名藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- 將Win10電腦變成藍芽音響Win10藍芽
- SOUNDBOKS藍芽音響:廣場舞大媽最愛藍芽
- BumpOut藍芽音響:可以貼在手機上音效完美藍芽
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽