AVRCP - Audio/Video Remote Control Profile
AVRCP提供藍牙設備如何遠距離播放音頻文件,比如mp3或者手機播放MP3音樂,藍牙耳機可聽到聲音并且可以控制播放,控制音量。同時手機(播放器)端可以收到藍牙耳機電量。所以,兩端的藍牙設備都存在兩個角色:控制器角色(Controller,發(fā)送控制命令角色),執(zhí)行角色(Target,響應控制命令角色)。
AVRCP的服務能力
1,AVRCP 查看(Browsing)
Browser是用來查看遠端設備(A2DP Source)信息的。創(chuàng)建AVRCP Browsing服務的流程如下:
1,初始化a2dp_sink_init()以及l(fā)ocal_stream_endpoint(),avrcp_init(),avrcp_controller_init(),avrcp_target_init()
2,初始化avrcp_browsing_init(),avrcp_browsing_controller_init(),avrcp_browsing_target_init()
3,初始化SDP,GAP
連接順序:先建立a2dp連接,a2dp_sink_establish_stream,然后建立avrcp連接,avrcp_connect,最后建立browsing連接,avrcp_browsing_connect;
2,AVRCP 控制
AVRCP提供了遠程控制和收聽通知的具體能力。創(chuàng)建AVRCP Controller的服務流程如下:
1,創(chuàng)建控制器,處理本設備的命令請求:avrcp_controller,avrcp_controller_init,register_packet_handler(處理通知消息,當前播放消息,以及控制命令消息),create_sdp_record,
2,創(chuàng)建目標對象,處理接收對端設備的命令請求:avrcp_target,avrcp_target_init,register_packet_handler(處理目標端消息,如音量調(diào)節(jié)等)