1. AVRCP常用指令协议栈介绍
1.1 AVRCP Play
播放蓝牙音乐,使用AVCTP的AV/C格式的命令走控制通道
1.2 AVRCP Pause
暂停蓝牙音乐,同播放指令一样使用AV/C格式的命令走控制通道
实际使用中由于CT端可能会快速发送两次播放或暂停指令,会触发部分TG端设备(如手机)执行了相反的操作。对应以上场景需要加以规避更好地提供蓝牙音乐功能。
1.3 AVRCP Forward
切歌到下一首,数据交互走控制通道。
1.4 AVRCP Backward
切歌到上一首,数据交互走控制通道。
1.5 AVRCP Get Element Attributes
获取歌曲信息,比如歌手、歌名、专辑名、歌曲总时长等详细信息,采用AV/C格式的命令走控制通道。
1.6 AVRCP Get Item Attributes
同样是获取歌曲信息,但是采用的是浏览格式的命令走浏览通道。
1.7 AVRCP Get Play Status
获取当前的播放状态,包括歌曲总时长、当前播放的进度条、播放状态等信息,采用AV/C格式的命令走控制通道。
该指令由于获取歌曲播放的进度条信息,所以需要循环请求,在安卓源码 rc_start_play_status_timer()中通过每隔 2s 的定时器实现该功能。
1.8 AVRCP Get Capabilities
获取远端设备AVRCP的能力,比如公司名、支持的事件,采用AV/C格式的命令走控制通道。
1.9 AVRCP Register Notification
注册通知,将GT端支持的事件注册成功后,如果该事件改变会自动通知到CT端,从而做出正确的处理,依然是采用AV/C格式的命令走控制通道。
1.10 AVRCP Get Folder Items
获取文件夹列表,比如媒体播放器列表、文件系统列表等。蓝牙音乐主要通过浏览命令走浏览通道获取媒体播放器列表,其会返回当前可用的媒体播放器名,及其支持的功能。