【AVRCP】深入理解命令类型、功能特性与浏览操作

目录

一、AVRCP命令类型

1.1 AV/C 命令:规范与拓展的融合

1.2 浏览命令:媒体内容探索的通道

1.3 封面艺术命令:视听体验的升华

二、设备能力与交互:精准控制与信息同步的保障

2.1 查询目标设备能力

2.2 目标播放器应用设置

2.3 当前媒体项的元数据属性获取:深入了解媒体内容

2.4 目标设备的事件通知:实时状态同步的纽带

三、高级功能:拓展控制边界,提升用户体验

3.1 续传(Continuation):突破数据传输限制的利器

3.2 组导航( Group Navigation):简化媒体存储访问逻辑

3.3 绝对音量( Absolute Volume):精准音量控制体验

3.4 媒体播放器选择

3.5 当前播放(Now Playing)

3.6 UID(唯一标识符)

3.7 搜索(Search)

3.8 浏览(Browsing)

四、封面艺术(Cover Art)功能及BIP的使用

4.1 封面艺术属性的获取

4.2 BIP 功能在 AVRCP 中的运用

4.2.1 BIP 部分功能的直接使用与调整

4.2.2 功能角色与连接建立

4.2.3 从 BIP 中使用的具体项目

五、总结

六、 参考资料


在蓝牙技术栈中,AVRCP协议不仅支持基本的播放、暂停和跳跃功能,还涵盖了更复杂的操作,如浏览媒体库、检索封面艺术和设置播放器属性。

一、AVRCP命令类型

AVRCP协议中的命令主要分为三大类。

1.1 AV/C 命令:规范与拓展的融合

AV/C命令是AVRCP的基础,包括两组命令:

  • PASSTHROUGH命令、UNIT和SUBUNIT INFO命令:这些命令遵循AV/C规范,用于基本的设备控制和信息查询。想象一下,当您使用蓝牙音箱遥控器操作音箱时,PASSTHROUGH 命令负责将遥控器上的操作指令,如播放、暂停、音量调节等,精准传递给音箱的相应模块。UNIT INFO 命令则能让遥控器获取音箱作为一个整体单元的关键信息,比如音箱的生产厂商信息、设备类型等,就像了解一个新朋友的基本背景。而 SUBUNIT INFO 命令进一步深入,可获取音箱内部子单元的详细信息,例如是否具备特定音效增强子单元等。

  • AVRCP特定AV/C命令:作为Bluetooth SIG供应商依赖扩展的一部分,这些命令使用AV/C供应商依赖操作码和供应商唯一PASSTHROUGH操作ID,通过AVCTP控制通道发送。它们为设备带来了更丰富的自定义功能,比如在一些高端音频设备中,利用这些命令可以实现复杂的音频效果设置、元数据的精细管理等,满足用户个性化的需求。

1.2 浏览命令:媒体内容探索的通道

浏览命令依赖 AVCTP 浏览通道来运作,其独特之处在于直接运用 AVCTP,绕开了 AV/C 层,并且浏览通道不采用 AVCTP 分片技术。这一设计使得 AVRCP 实体能够依据 AVCTP 浏览通道的 MTU(最大传输单元),清晰判断对等实体能够接纳的数据量。以手机通过蓝牙搜索车载音响中的音乐文件为例,手机(CT)在发送搜索命令时,会根据 L2CAP MTU 限制用户输入的搜索字符串长度。这样一来,既能保证搜索命令顺利传输,又能避免因数据量过大导致的传输失败,为用户提供流畅的搜索体验。

1.3 封面艺术命令:视听体验的升华

AVRCP 中的封面艺术命令源于对 BIP(蓝牙图像协议)的复用与重写。通过 BIP 的通用成像图像拉取功能,CT(如手机)作为成像发起者,能够从 TG(如蓝牙音箱)作为成像响应者那里获取与媒体相关的精美图像,比如音乐专辑封面。这些命令通过 OBEX 连接实现,为用户在享受音频的同时,带来了视觉上的丰富体验,让音乐播放不仅仅是听觉的享受,更是视觉的盛宴。

二、设备能力与交互:精准控制与信息同步的保障

AVRCP协议提供了丰富的功能特性,增强了设备间的交互性。

2.1 查询目标设备能力

CT可以查询TG的多种能力,包括:

  • 支持的公司ID(Company IDs)列表:有助于 CT 识别设备的制造商和品牌,判断设备的来源和兼容性,就像在一群朋友中认出熟悉的面孔。

  • 支持的事件ID( Event IDs)列表:让 CT 清楚知晓哪些事件,如播放状态的切换、曲目之间的跳转等,能够被监控和响应,从而及时做出相应的反馈。

  • 播放器应用特定的功能位掩码(Player Application specific feature bitmask):通过在媒体播放器列表范围内,运用 GetFolderItems 命令浏览可用媒体播放器,获取这一信息。使得 CT 能够深入了解每个媒体播放器的独特功能特性,比如某个播放器是否支持无损音频播放、是否具备特定的音效模式等,为用户选择最合适的播放器提供依据。

2.2 目标播放器应用设置

播放器应用设置命令允许CT查询TG上的播放器应用设置属性,并获取和设置这些属性的特定值。所有播放器应用设置均以<属性, 值>对的形式存在,每个属性可能有多个可能值,其中一个为当前生效的设置值。

SPEC贴心地为一些常用的播放器应用设置定义了预定义属性和值,这些都详细记录在附录 F 中。

【AVRCP】深入理解命令类型、功能特性与浏览操作_第1张图片

不仅如此,PDU(协议数据单元)还允许对目标设备上的预定义属性和值进行扩展,CT 可以轻松访问这些扩展信息以及与之相关的可显示文本。这一特性极为实用,即使 CT 并不完全理解目标设备播放器应用设置的具体语义,也能通过显示相关文本,巧妙地扩展自身菜单,为用户提供操作播放器应用设置的便捷途径。每个播放器应用设置都被赋予了唯一的 AttributeID,属性值也有对应的 ValueID,而且目标定的属性和值还关联了可显示文本,这使得 CT 能够为现有媒体播放器提供丰富的菜单扩展,满足用户多样化的设置需求。

2.3 当前媒体项的元数据属性获取:深入了解媒体内容

CT 使用 GetElementAttributes 命令,能够轻松检索当前正在播放媒体元素的元数据属性,如音乐的标题、艺术家、专辑名称,视频的标题、导演、演员等信息。这些元数据就像是媒体内容的 “身份证”,让 CT 能够更全面、深入地了解播放内容,为用户呈现更丰富、详细的信息。例如,在蓝牙音箱的配套应用中,用户可以直观地看到正在播放歌曲的完整信息,增强了用户对媒体内容的认知和掌控感。

2.4 目标设备的事件通知:实时状态同步的纽带

媒体元数据获取以及目标设备的事件通知功能,对于实现设备间高效、智能交互起着关键作用。这两个部分紧密关联,一方面让控制设备(CT)精准了解当前媒体内容详情,另一方面保障CT能实时感知目标设备(TG)状态变化,进而提供更优质的用户体验。

①当前媒体项目的元数据属性

  • 获取方式:CT可通过GetElementAttributes命令,从TG处获取当前正在播放媒体元素的元数据属性。这一功能赋予CT极大的灵活性,它既能够按需请求特定的一组属性,也能一次性获取全部属性。

  • 属性内容:

你可能感兴趣的:(蓝牙技术探索与应用,AVRCP,音视频控制,蓝牙技术)