我很难理解如何使用我的项目实现AVRCP。我已经搜索了很多并阅读了很多数据表,但我似乎仍然缺少一些东西......
这是我想要做的:
简单地说,只要蓝牙模块支持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接口,我可以在其中发送play,pause,next,prev命令来控制音乐播放器和请求艺术家,专辑,曲目名称,经过时间,曲目长度元数据。
这是我发现在数据表中提到元数据的唯一单位: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/Bluetooth/Melody_5.0_Manual-RevD-RC10-Release.pdf(第16页)
但我仍不清楚这是如何运作的!
这里的任何帮助都会很棒!
答案 0 :(得分:2)
首先,你应该看看这个文件: https://developer.bluetooth.org/TechnologyOverview/Documents/AVRCP_SPEC.pdf
要从源获取元数据,必须使用以下命令: GetElementAttributes()
要了解如何使用该功能以及要设置的参数,请转至数据表中的第53页。使用该功能,您可以访问以下属性:标题,艺术家姓名,专辑名称,曲目编号,曲目总数,流派,播放时间。源将使用所需属性进行响应。有关具有特定ID的所有属性的列表,请参阅第132页的附录E.
对不起我的英文:)
答案 1 :(得分:0)
您可以查看BlueGiga WT-32i芯片: https://www.bluegiga.com/en-US/products/bluetooth-classic-modules/wt32-bluetooth--audio-module/
它支持AVRCP 1.5,并且在其手册的第6.8节(http://www.microtechnica.tv/support/manual/iWRAP5_User_Guide.pdf)中,它似乎具有检索轨道元数据的命令。