2014-02-09 187 views
1

我很難理解如何使用我的項目實現AVRCP。我尋覓頗有幾分看了很多數據表,但我仍然似乎失去了一些東西......藍牙A2DP + AVRCP 1.3+模塊

這是我想做的事:

簡單地說,我希望能夠用我的連接只要藍牙模塊支持A2DP,通過藍牙將android 4.3設備通過A2DP傳輸音樂(這看起來非常簡單)。此外,我想能夠控制媒體播放器應用程序(潘多拉等)。現在,我知道AVRCP 1.0只支持基本的控制命令(暫停,播放,下一個,上一個,FF,RW),並且我發現許多在線的藍牙模塊支持通過簡單的UART AT命令或命令通過SPI總線發送這些命令。不過,我也希望能夠從android設備(僅限AVRCP 1.3+功能)獲取元數據,例如曲目名稱,專輯名稱,藝術家姓名,曲目長度和已用時間。現在

,從我的理解,獲得元數據,我需要支持AVRCP 1.3或更高版本藍牙模塊。我無法理解的是如何請求元數據!從我讀的內容來看,元數據(如曲目名稱,藝術家,ablum和曲目長度)是爲了響應音軌更改命令而發送的。任何人都可以確認嗎?如果我需要請求流逝的時間呢?

理想情況下,我正在尋找一個支持A2DP(24位,如果有的話)和AVRCP 1.3或更高版本的藍牙模塊,可以通過UART或SPI或I2C接口發送,暫停,接下來,音樂播放器和請求藝術家,專輯,曲目名稱,已用時間,曲目長度元數據。

這是我發現的唯一單元的數據手冊中提到的元數據: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/Bluetooth/Melody_5.0_Manual-RevD-RC10-Release.pdf(pg.16)

但我還不清楚這是如何工作!

這裏的任何幫助將是巨大的!

+0

AVRCP支持2 roles.target和控制器,送你需要定義目標角色,請參閱[media.doc]所有的元數據信息(https://git.kernel.org/cgit/bluetooth/bluez.git/tree /doc/media-api.txt?id=4.101)。檢查APIS,您需要註冊媒體播放器並傳遞元數據和跟蹤信息。如果控制器更改任何參數,媒體接口SetProperty()將被調用,並且PropertyChanged信號需要從您的代碼發送到具有所有值的bluez,docs有點清晰。如果您使用的是其他堆棧而不是bluez,則此操作不起作用 – ashish

+0

可能的[通過A2DP/AVRCP發送曲目信息]的副本(http://stackoverflow.com/questions/15527614/send-track-informations-via-a2dp-avrcp) – Phrogz

回答

2

首先,你應該看看這個文件: https://developer.bluetooth.org/TechnologyOverview/Documents/AVRCP_SPEC.pdf

要想從源頭上的元數據,你必須使用以下命令: GetElementAttributes()

要知道如何使用功能和要設置的參數,請轉至數據表中的第53頁。白功能,您可以訪問以下屬性:標題,藝術家姓名,專輯名稱,曲目編號,曲目總數,流派,播放時間。源將用所需的屬性進行響應。對於他們的特定ID的所有屬性的列表,請參見附錄E頁132

對不起,我的英語:)