网站首页 > 技术教程 正文
蓝牙音乐之AVRCP
蓝牙音乐实实在在地改变了我们听音乐的方式,尤其是iphone推出真无线耳机后,这一趋势更加明显。蓝牙音乐中不单单涉及到A2DP,对A2DP还不了解的小伙伴可以查看《蓝牙音乐之A2DP 》,还有音乐远端控制功能(播放、暂停、切换歌曲等),而这些功能的实现都依赖于AVRCP协议。
AVRCP:Audio/Video Remote Control Profile,音视频远端控制协议,所以该协议不但能控制蓝牙音乐,也可以控制视频流相应的功能。常见的使用到AVRCP控制功能的场景有如下几种:
- 耳机或车载等蓝牙设备控制其他设备上的音乐音源播放(手机)
- 远端设备控制其他设备上的视频播放
- 远端设备控制手机拍照(手机前台应用为照相机)
AVRCP协议版本变化,版本之间都是向下兼容的关系:
- v1.0:基本的远程控制命令,如播放、暂停、切歌
- v1.3:新增获取音乐当前的播放状态以及播放音乐的歌曲信息(歌曲总时长、当前播放位置、歌曲名、专辑名、歌手)
- v1.4:新增浏览功能,支持绝对音量调节
- v1.5:相关协议已通过的更改以纠正各种错误
- v1.6:新增两个特性:
- 项目的数量,用于控制器的接口,请求和接收文件夹中的项数,而无需下载列表
- 封面艺术,支持通过基于OBEX协议上的 BIP(Basic Imaging Profile)协议将图像传输到媒体项目
所以如果两端设备的AVRCP协议都支持1.6及以上,则可实现通过蓝牙传输图片的功能。由于蓝牙传输数据量的限制,该功能也只是适用于音乐专辑封面照等小数据量的传输,而不适合大批量图片的传输。
至此,最新的v1.6版本的AVRCP协议结构及依赖关系如下:
AVRCP协议的核心概况如下:
类似于其他蓝牙协议,AVRCP协议也将设备两端划分为两种角色:
- CT:controller控制器是通过向目标设备发送命令帧来启动事务的设备,如耳机、音箱、车载蓝牙设备
- TG:target目标是接收控制器发送过来的命令帧并生成相应响应帧的设备,如手机
需要注意的是,通常情况下CT和TG都是成对出现在同一个piconet网中,但是同一个piconet网中可以存在多个CT设备,比如同一个手机(TG)可以同时连接多个耳机(CT)。常见的关系图如下:
从上面的概况图可知AVRCP协议的传输依赖于AVCTP,所以AVRCP协议的连接、交互实际上是AVCTP传输协议的连接、交互流程。
AVCTP的连接建立
用于AVCTP控制的L2CAP链路的连接建立可以由CT或TG启动,此L2CAP链路称为控制通道。如果设备双方都支持浏览功能(AVRCP版本都在v1.4及以上),则还可以在控制通道建立后再建立一条浏览通道,浏览通道在建立时应配置为使用L2CAP增强重传模式。同理通道的释放也可以由CT或TG启动,如果存在浏览通道则需要在控制通道断开前释放。
如果两端设备同时打开AVCTP通道建立连接,双方检测到连接冲突后两个通道都应关闭,每端设备应该等待随机时间(100ms <= time <= 1s),然后再尝试打开AVCTP通道。如果知道哪个设备是主设备,则该设备可以立即重新尝试连接。
实际使用过程中AVCTP的连接都会在AVDTP(A2DP协议依赖的传输协议)连接成功后由CT端设备主动发起连接,当然GT端设备可选择性的也发起主动连接。
AVRCP中基本AV/C命令
AV/C命令启动的前提是AVCTP的连接已建立,这样由用户触发或程序内部启动的AV/C流程才可正常运作,大致流程图如下:
OBEX的连接和断开
AVRCP(v1.6版本及以上)使用来自BIP协议通用成像图像特性中定义的功能来提供封面艺术图片,而BIP又依赖于OBEX。所以封面艺术OBEX连接时使用的目标标头为封面艺术专属的 UUID=
7163DD54-4A7E-11E2-B47C-0050C2490048。
链路建立成功后,AVRCP的CT端设备具有BIP成像发起者的作用,而对应的AVRCP的GT端设备具有BIP成像应答器的作用。
AVRCP命令的类型:
1、AV/C命令,通过AVCTP的控制通道交互,存在如下两组命令:
- 在AV/C规范中定义的Pass Through命令、UNIT和SUBUNIT INFO命令,常用的播放、暂停、上下首切歌等控制命令都是Pass Through命令
- AVRCP特有的AV/C命令
2、浏览命令,通过AVCTP的浏览通道交互
3、封面艺术命令,通过OBEX建立的连接交互
AVRCP协议中特有的常见命令如下图所示:
更多AVRCP指令就留待大家在实际使用过程中探索了,本期的AVRCP协议分享就到这儿感兴趣的小伙伴欢迎私信留言一起讨论,共同学习,一起进步!
参考文件:
《AVRCP_v1.6.2.pdf》
《AVCTP_SPEC_V14.pdf》
猜你喜欢
- 2025-07-07 电路仿真软件详谈(八),proteus电路仿真软件和protel的区别
- 2025-07-07 日本网吧引入一对一VR影院,器具保洁方法别出心裁
- 2025-07-07 手机是否需要安装杀毒软件 看完你就知道答案
- 2025-07-07 多媒体系列专题|蓝牙音乐(多功能蓝牙播放器)
- 2025-07-07 云时代:5个免费的文件托管服务(云托管费用)
- 2025-07-07 天龙马兰士功放奥德赛Audyssey MultEQ Editor手机APP使用教程
- 2025-07-07 RAM在单片机里究竟有什么用?(单片机片内ram的要求与特点)
- 2025-07-07 6款常用的电路仿真软件,你喜欢用哪个?
- 2025-07-07 一键ROOT大师:哪些软件不可随意删除
- 2025-07-07 何为单片机烧写?这三种方式你pick哪种?
你 发表评论:
欢迎- 07-07单片机开发之ADC模数转换和DAC数模转换
- 07-07内建数模转换 Aero耳机众筹(内建模型)
- 07-07最熟悉才最陌生!这些视频接口你真知道?
- 07-07IMEC推出150 GSa/s 数模转换器,助力欧洲突破高速互联瓶颈
- 07-07USB端ESD防护电路设计,3种usb保护电路图详解
- 07-07美的变频空调外机电控盒电控电脑主板工作原理及检修办法
- 07-07您的数模转换器有多精确?(数模转换器计算公式)
- 07-07关于芯片,这里有你没看过的硬核科普
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)