【AVRCP】深入剖析 AVRCP 命令体系:从单元到特定命令的全面解读

在蓝牙音频 / 视频远程控制规范(AVRCP)中,丰富的命令体系是实现设备间高效交互的关键。这些命令涵盖了单元命令、通用单元与子单元命令、特定命令等多个层面,

一、支持的单元命令

1.1 单元命令概述

AVRCP中支持的单元命令在设备交互中扮演着重要角色,用于获取设备的整体信息和子单元信息。在使用这些单元命令时,AV/C命令帧的AV/C地址字段需指示单元的值。

1.2 UNIT INFO命令

  • 功能用途:根据AV/C通用规范,UNIT INFO状态命令用于获取单元的整体信息。例如,在一个蓝牙音频设备中,通过该命令可以获取设备的基本信息,包括设备的主要功能类型等。

  • 支持情况:在目标设备(TG)中是强制支持的,而在控制器(CT)中则不适用。

  • 响应帧内容

    • unit_type字段:响应帧的unit_type字段应显示代表单元主要功能的子单元类型代码。如果设备仅实现此配置文件,则应在响应帧中返回PANEL子单元。

    • company_ID字段:该字段应插入从IEEE注册管理机构委员会获得的24位唯一ID。若TG设备的供应商没有此唯一ID,则可使用值0xFFFFFF。

1.3 SUBUNIT INFO命令

  • 功能用途:同样依据AV/C通用规范,SUBUNIT INFO状态命令用于获取单元的子单元信息。对于了解设备内部的具体功能模块非常有帮助。

  • 支持情况:与UNIT INFO命令相同,在TG中是强制支持的,在CT中不适用。

  • 响应帧内容:如果设备实现了此配置文件,响应帧的subunit_type字段应返回PANEL子单元,max_subunit_ID字段的值应为0。

二、支持的通用单元和子单元命令

2.1 VENDOR DEPENDENT命令

  • 命令格式与规则:命令帧或响应帧的格式以及合规使用规则均按照AV/C通用规范定义。

  • 支持情况:若支持任何AVRCP特定的AV/C命令,则该命令在CT和TG端均为强制支持(C);否则为可选支持。

  • 特定ID使用:对于AVRCP特定的AV/C命令支持,使用预定义的VENDOR DEPENDENT命令,其company_ID字段应包含24位唯一ID [0x001958],所有AVRCP特定的AV/C协议数据单元(PDU)都应使用此唯一ID。若设备不支持与元数据传输相关的功能,则应按照AV/C协议规范返回“未实现”的响应。

  • 使用限制:除了定义为AVRCP特定AV/C命令的VENDOR DEPENDENT命令外,不得使用具有相同功能但未定义为AVRCP特定命令的VENDOR DEPENDENT命令来替代AVRCP中指定的命令。

2.2 PASS THROUGH命令

  • 功能用途:根据AV/C面板子单元规范,PASS THROUGH命令用于将用户操作信息从CT传输到TG的面板子单元。例如,在蓝牙遥控器控制智能音箱的场景中,用户按下遥控器上的按钮,通过该命令将操作信息传递给音箱的面板子单元,从而实现对音箱的控制。

  • AV/C地址字段:AV/C命令帧的AV/C地址字段应指示面板子单元的值。

  • 支持情况:CT和TG端都必须支持PASS THROUGH命令的操作码(M*),每个操作 ID 的支持级别取决于设备支持的 A/V 功能类别。

  • 特殊注意事项:需特别关注 state_flag,它用于传达按钮的按下和释放状态以及时序要求,以实现长按按钮等操作。

三、AVRCP特定命令

AVRCP定义了一系列特定命令,用于实现更复杂的控制功能和元数据处理。

3.1 命令分类

AVRCP 特定命令分为 AV/C VENDOR DEPENDENT 命令(命令类型为 AV/C CType)和浏览命令。AV/C 命令通过 AVCTP 控制通道发送,浏览命令通过 AVCTP 浏览通道发送。

3.2 具体命令介绍

  • 能力相关命令:如 GetCapabilities,用于获取设备能力信息。

  • 播放器应用设置命令:包括 ListPlayerApplicationSettingAttributes、ListPlayerApplicationSettingValues 等,用于管理播放器的应用设置。

  • 元数据属性命令:例如 GetElementAttributes,用于获取当前媒体项的元数据属性。

  • 通知命令:像 GetPlayStatus、RegisterNotification 等,用于设备间的状态通知和事件监听。

  • 浏览命令:如 SetBrowsedPlayer、GetFolderItems 等,支持对媒体文件的浏览和操作。

  • 搜索命令:Search 等命令,方便用户查找特定媒体内容。

  • 当前播放列表命令:用于管理和操作当前播放列表。

  • 错误响应命令:如 General Reject,处理命令执行过程中的错误情况。

3.3 支持情况说明

不同命令的支持情况根据设备支持的功能类别而定,用 C1 - C17 等标识。例如,若设备支持 Category 1,则部分与 Category 1 相关的命令为强制支持;若不支持,则为可选或排除。

四、AVRCP 特定供应商唯一 PASS THROUGH 命令

这类命令用于处理组导航功能,如 Next Group、Previous Group 等。使用时需以蓝牙 SIG 注册的 CompanyId 作为操作码,并结合定义的供应商唯一操作 ID 和 PANEL 子单元类型。

4.1 类别及操作 ID 支持级别

①TG 支持级别

不同类别(如 Player/Recorder、Monitor/Amplifier、Tuner、Menu)对操作 ID 有不同的支持要求。例如,在 Category 1 中,play、stop 等命令可能为强制支持;在 Category 2 中,volume up、volume down 等命令可能为强制支持。

 ②CT 支持级别

CT 虽无由 PASS THROUGH 命令操作 ID 定义的强制命令,但对于每个支持的类别,至少需支持一个操作 ID。不同类别下各操作 ID 的支持情况也有所不同。

五、实际应用与意义

这些支持的命令在实际的AVRCP应用中具有重要意义。通过UNIT INFO和SUBUNIT INFO命令,设备可以相互了解对方的基本信息和子单元情况,为后续的控制和交互提供基础。VENDOR DEPENDENT命令则为厂商提供了自定义命令和功能的灵活性,满足不同设备的特殊需求。而PASS THROUGH命令则是实现用户与设备交互的关键,让用户能够通过CT方便地控制TG的面板子单元,实现各种操作。

总之,AVRCP中支持的单元、通用单元与子单元以及子单元命令构成了一个完整的命令体系,为蓝牙音频/视频设备的远程控制和交互提供了坚实的基础。 


六、 参考资料

AVRCP 1.6.3:可在蓝牙技术联盟官方网站或者https://download.csdn.net/download/weixin_37800531/90046059?spm=1001.2014.3001.5503获取。

希望本文能帮助大家更好地理解AVRCP中的命令相关知识,也欢迎大家在评论区分享自己的见解和经验。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27858.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物业管理系统源码 物业小程序源码

物业管理系统源码 物业小程序源码 一、基础信息管理 1. 房产信息管理 记录楼栋、单元、房间的详细信息(面积、户型、产权等)。 管理业主/租户的档案,包括联系方式、合同信息等。 2. 公共资源管理 管理停车场、电梯、绿化带、公…

专题二最大连续1的个数|||

1.题目 题目分析: 给一个数字k,可以把数组里的0改成1,但是只能改k次,然后该变得到的数组能找到最长的子串且都是1。 2.算法原理 这里不用真的把0变成1,因为改了比较麻烦,下次用就要改回成1,这…

【计算机网络入门】初学计算机网络(十一)重要

目录 1. CIDR无分类编址 1.1 CIDR的子网划分 1.1.1 定长子网划分 1.1.2 变长子网划分 2. 路由聚合 2.1 最长前缀匹配原则 3. 网络地址转换NAT 3.1 端口号 3.2 IP地址不够用? 3.3 公网IP和内网IP 3.4 NAT作用 4. ARP协议 4.1 如何利用IP地址找到MAC地址…

精讲坐标轴系统(Axis)

续前文: 保姆级matplotlib教程:详细目录 保姆级seaborn教程:详细目录 seaborn和matplotlib怎么选,还是两个都要学? 详解Python matplotlib深度美化(第一期) 详解Python matplotlib深度美化&…

Metal学习笔记十:光照基础

光和阴影是使场景流行的重要要求。通过一些着色器艺术,您可以突出重要的对象、描述天气和一天中的时间并设置场景的气氛。即使您的场景由卡通对象组成,如果您没有正确地照亮它们,场景也会变得平淡无奇。 最简单的光照方法之一是 Phong 反射模…

动态规划_路径问题(典型算法思想)—— OJ例题算法解析思路

目录 一、62. 不同路径 - 力扣(LeetCode) 算法代码: 代码思路分析 问题定义: 动态规划定义: 边界条件: 填表过程: 返回结果: 代码优化思路 空间优化: 滚动数组…

【AI论文】ViDoRAG:通过动态迭代推理代理实现视觉文档检索增强生成

摘要:理解富含视觉信息的文档中的信息,对于传统的检索增强生成(Retrieval-Augmented Generation,RAG)方法来说,仍然是一个重大挑战。现有的基准测试主要集中在基于图像的问答(Question Answerin…

【赵渝强老师】监控Redis

对运行状态的Redis实例进行监控是运维管理中非常重要的内容,包括:监控Redis的内存、监控Redis的吞吐量、监控Redis的运行时信息和监控Redis的延时。通过Redis提供的监控命令便能非常方便地实现对各项指标的监控。 一、监控Redis的内存 视频讲解如下 【…

HTML前端手册

HTML前端手册 记录前端框架在使用过程中遇到的各种问题和解决方案,供后续快速进行手册翻阅使用 文章目录 HTML前端手册1-前端框架1-TypeScript框架2-CSS框架 2-前端Demo1-Html常用代码 2-知云接力3-Live2D平面动画 3-前端运维1-NPM版本管理 1-前端框架 1-TypeScrip…

C++:类和对象(下篇)

1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _mont…

JVM基本概念及内存管理模型

一、JVM基本概念 JVM(Java Virtual Machine,Java 虚拟机)是 Java 程序运行的核心组件。它负责将 Java 字节码转换为特定平台的机器指令,并提供内存管理、垃圾回收、安全性等功能。JVM 的主要功能包括以下: 加载和执行…

MyBatis - 单元测试 参数传递 注解 CRUD

目录 1. MyBatis 简介 2. 简单使用 MyBatis 2.1 创建 MyBatis 项目 2.2 连接数据库 2.3 创建 Java 类 2.4 创建 Mapper 接口 2.5 在测试类中执行 3. 单元测试 3.1 Test 3.2 SpringBootTest 3.3 BeforeEach / AfterEach 4. MyBatis 基础操作 4.1 配置 MyBatis 打印日…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…

shell文本处理

shell文本处理 一、grep ​ 过滤来自一个文件或标准输入匹配模式内容。除了 grep 外,还有 egrep、fgrep。egrep 是 grep 的扩展,相当于 grep -E。fgrep 相当于 grep -f,用的比较少。 用法 grep [OPTION]... PATTERN [FILE]...支持的正则描述…

Linux中死锁问题的探讨

在 Linux 中,死锁(Deadlock) 是指多个进程或线程因为竞争资源而相互等待,导致所有相关进程或线程都无法继续执行的状态。死锁是一种严重的系统问题,会导致系统资源浪费,甚至系统崩溃。 死锁的定义 死锁是指…

Baklib内容中台赋能企业智管

内容中台构建全场景智管 现代企业数字化运营中,全域内容管理能力已成为核心竞争力。通过智能知识引擎驱动的内容中台架构,企业能够实现跨部门、多形态数据的统一归集与动态调度。以某制造企业为例,其利用中台系统将分散在CRM、ERP及内部文档…

ArcGIS Pro高级应用:高效生成TIN地形模型

一、引言 在地理信息科学与遥感技术的快速发展背景下,数字高程模型(DEM)已成为地形表达与分析的关键工具。 三角网(TIN)作为DEM的一种重要形式,因其能够精准描绘复杂地形特征而广受青睐。 ArcGIS Pro为用…

leetcode112-路径总和

leetcode 112 思路 我们利用递归来实现,用result字段来记录结果值,默认为false,我们递归的时候传入需要的目标值,然后每次遍历到一个节点,就用目标值减去节点当前值,最终到叶子节点时,如果是…

LLM | 论文精读 | CVPR | PEACE : 通过多模态大语言模型(MLLMs)赋能地质图全面理解

论文标题:FairCLIP: Harnessing Fairness in Vision-Language Learning 作者:Yan Luo Min Shi Muhammad Osama Khan Muhammad Muneeb Afzal等 期刊:CVPR 2025 email:yuhan.huangwhu.edu.cn 创作不易,恳请大家点赞收…

网络学习(四)HTTPS中,SSL的单向认证与双向认证

目录 一、什么是SSL?1.1 SSL 的主要功能1.2 SSL 的工作原理1.3 SSL 的核心组件1.4 SSL 的应用场景1.5 SSL 与 TLS 的区别 二、SSL 单向认证、双向认证2.1 SSL 单向认证2.2 SSL 双向认证2.3 总结:SSL 单向认证和双向认证的区别 一、什么是SSL?…