蓝牙音视频远程控制协议(AVRCP)介绍

news2024/11/19 17:43:59

 零.声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等

第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等

第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。

第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)

第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等

第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展

第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。

另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

-------------------------------------------------------------------------------------------------------------------------

蓝牙视频教程(跟韦东山老师合作):

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.20.5aeb41f98e267j&id=693788592796

蓝牙交流扣扣群:765961169

Github代码:GitHub - sj15712795029/bluetooth_stack: 这是一个开源的双模蓝牙协议栈(bluetooth.stack)(btstack),可以运行在STM32,Linux.,包含HCI,L2CAP,SDP,RFCOMM,HFP,SPP,A2DP,AVRCP,AVDTP,AVCTP,OBEX,PBAP等协议,后续会继续维护,以达到商用的目的

入手开发板:https://shop220811498.taobao.com/category-1542116976.htm?spm=a1z10.5-c-s.w4010-22329603913.7.39ca7dbe2EA0K3&search=y&catName=%C0%B6%D1%C0%BF%AA%B7%A2%B0%E5#bd

蓝牙学习目录:一篇文章足够你学习蓝牙技术,提供史上最全的蓝牙技术(传统蓝牙/低功耗蓝牙)文章总结,文档下载总结(2020/12/11更新)_Wireless_Link的博客-CSDN博客_蓝牙eir

--------------------------------------------------------------------------------------------------------------------------

 一. AVRCP概念

AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和audio/video控制功能通信的特点和过程,另用于远程控制音视频设备,底层传输基于AVCTP传输协议。该Profile定义了AV/C数字命令控制集。命令和信息通过AVCTP(Audio/Video Control Transport Protocol)协议进行传输。浏览功能通过AVCTP的第二个channel而不是AV/C。传输媒体信息通过基于OBEX协议的BIP(Bluetooth Basic Imaging Profile)协议。架构如下:

在我们协议栈的位置是:

二.AVRCP角色

The following roles are defined for devices that comply with this profile:

The controller (CT) is a device that initiates a transaction by sending a command frame to a target. Examples for CT are a personal computer, a PDA, a mobilephone, a remote controller or an AV device (such as an in car system, headphone, player/recorder, timer, tuner, monitor etc.).

The target (TG) is a device that receives a command frame and accordingly generates a response frame. Examples for TG are an audio player/recorder, a video player/recorder, a TV, a tuner, an amplifier or a headphone。

说白了就是发送命令控制的就是AVRCP controller,那么接受命令的就是AVRCP target.

并且AVRCP定义了4中类别:

1)Category 1: Player/Recorder,播放器/录音器

Basic operations of a player or a recorder are defined, regardless of the type of media

(tape, disc, solid state, etc.) or the type of contents (audio or video, etc.).

2)Category 2: Monitor/Amplifier,显示器/放大器

The category 2 is to define basic operations of a video monitor or an audio amplifier.

3)Category 3: Tuner,调试器

The category 3 defines the basic operation of a video tuner or an audio tuner.

4)Category 4: Menu,菜单

The basic operations for a menu function are defined in category 4. The method to display

menu data is not specified. It  may  be a display panel of the device itself, or on-screen

display (OSD) on an external monitor.

角色有以下几种应用场景:

1)单独充当AVRCP controller的设备

  其中遥控器只是发送Category 1的command的指令来控制播放器,然后播放器把音乐发送给耳机(音频协议不再本章范围内)

 2)车载娱乐系统

  

其中车载IVI来通过Category 1的command的指令来控制手机,手机发送音乐给IVI(音频协议不再本章范围内)

 3)两个设备之间的远程控制以及Audio流

  

这个跟第二种情况类似,是一种情况的升级版,也就是把控制跟接受音频放在了同一个设备上,其中Headphone只发送Category 1的指令来控制

 4)每个设备都充当AVRCP双角色的设备

  

以上两个设备都是AVRCP双角色(controller,target),耳机通过Category 1的指令充当控制播放暂停等(此时Headphone就是AVRCP controller,Disc Player是AVRCP target),Disc Player通过Category 2来控制音量(此时Disc Player是AVRCP controller,此时Headphone就是AVRCP target)

 5)带有LCD的远程控制

  

此耳机带有LCD显示功能,此时可以通过Category 1的命令不仅可以做常规的play/pause等功能,还可以通过Browing来浏览目录文件夹等。

 6)全功能显示的车载系统

  

车机通过Category 1来进行常规的play/pause/browing功能,还可以通过Cover Art来下载专辑图片等功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VT-VSPA1-508-1X/V0替代型模拟放大器

适用于控制所有无电位置反馈的直动式和先导式比例方向阀、比例压力阀。如: DBETX–...–8 DBE6X–...–8 DRE6X–...–8 DBE10Z–...–8 DRE10Z–...–8 通过 24V 输入或跳线改变内部控制值信号极性。 – 通过相位识别(24V 输入)或斜坡…

C++类中函数重写(成员函数覆盖)

在本文中,您将学习函数重写。此外,您还将学习如何在C 编程中评估基类的函数重写。继承允许软件开发人员从现有类派生新类。派生类继承基类(现有类)的功能。假设基类和派生类都具有一个具有相同名称和参数(参数的数量和…

OA和别的系统对接的java文件,调的websevice接口的参考实例

//代码块 package com.bj520.action; import com.alibaba.fastjson.JSON; import com.bj520.service.zs.Webfcs; import com.bj520.service.zs.WebfcsLocator; import com.bj520.util.LogUtil; import com.bj520.util.ZsResultUtil; import weaver.conn.RecordSet; import wea…

Capture One 23 Pro for Mac/win:专业图片编辑的最佳选择

在当今的数字时代,图片编辑软件如雨后春笋般涌现,但并非所有软件都能满足专业摄影师的需求。如果你追求卓越的图像质量、高效的编辑功能和一流的用户体验,那么Capture One 23 Pro无疑是你不二的选择。 Capture One 23 Pro以其出众的图像质量…

python控制负数以16进制整型格式输出

实际使用时候,发现 python输出负数进程是 十进制和16进制一样的,就是16进制多了一个负号,和预期结果不同;比如我想要 -1输出 0xFFFFFFFF,可以参考如下方式; def TestPrintf(): ret -3print("test1 r…

Find My资讯|苹果将推迟至2025年量产AirTag 2,Find My获得市场认可

郭明錤调整今年 8 月关于苹果第二代 AirTag 的预测,表示该产品量产时间从此前的 2024 年第 4 季度,延迟到 2025 年,会进一步推迟新款上市日期。 AirTag 是用于固定在背包、行李和其他物品上的配件。任何搭载 U1 芯片的设备都可以用于精确查…

代码随想录算法训练营第五十八天 | 583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 链接: 代码随想录 (1)代码 72. 编辑距离 链接: 代码随想录 (1)代码

哪个牌子的台灯对孩子的视力好?对孩子视力好的台灯推荐分享

现在市面上台灯品牌众多,价格不一,品质更是参差不齐,所以要学会如何选择适合孩子的台灯。光源质量是重要因素,光源是直接影响到孩子的视力, 一般来说,光源质量主要看照度、亮度和均匀度、显色指数等&#x…

npm publish发布到在线仓库时,提示:Scope not found

当npm publish发布时,控制台提示:Scope not found,具体错误信息如下: npm notice npm ERR! code E404 npm ERR! 404 Not Found - PUT https://registry.npmjs.org/xxx%2fxxx - Scope not found npm ERR! 404 npm ERR! 404 xxx/xx…

static设置变量的使用方法

重点: 1.长时间不使用static会忘记,记录一下,static变量的设置使用。 class Test { public:Test() default;~Test() default;public:int GetNum() { return m_num; };void SetNum(int num) { m_num num; }; private:static int m_num; }…

springboot188基于spring boot的校园商铺管理系统

项目名称:springboot188基于spring boot的校园商铺管理系统 点击这里进入源码目录 声明: 适用范围: 本文档适用于广泛的学术和教育用途,包括但不限于个人学习、毕业设计和课程设计。免责声明: 特此声明,本…

Android一些新的技术栈,你都会哪些?

Jetpack Compose: Jetpack Compose是一种全新的声明式UI框架,用于构建Android应用的用户界面。它使UI开发更加简单和直观,通过使用Kotlin语言来创建交互式和动态的UI组件。 Kotlin Multiplatform: Kotlin Multiplatform允许开发者…

外贸出口小型取暖器UL 1278怎么办理

UL1278是针对出口小型取暖器的安规认证,办理流程和要求因地区而异,具体的流程和要求可以参考当地的UL认证标准和操作指南。一般来说,办理UL1278需要以下步骤: 1. 准备申请材料 2. 联系UL认证机构 3. 样品测试 4. 文件审核 5. 认证…

Nginx平滑升级重定向rewrite

文章目录 Nginx平滑升级&重定向rewritenginx平滑升级流程环境查看旧版的配置信息下载新版nginx源码包和功能模块包编译配置新版本平滑升级验证 重定向rewrite配置重定向准发访问测试 Nginx平滑升级&重定向rewrite nginx平滑升级 流程 平滑升级: (升级版本、增加新功…

最短路相关笔记

Floyd Floyd 算法,是一种在图中求任意两点间最短路径的算法。 Floyd 算法适用于求解无负边权回路的图。 时间复杂度为 O ( n 3 ) O(n^3) O(n3),空间复杂度 O ( n 2 ) O(n^2) O(n2)。 对于两点 ( i , j ) (i,j) (i,j) 之间的最短路径,有…

Qt扫盲-QBrush理论使用总结

Q 理论使用总结 一、概述1. 填充模式2. 笔刷颜色3. 纹理 二、 Qt::GlobalColor 一、概述 QBrush类定义了由 QPainter 绘制的形状的填充模式。画笔有样式、颜色、渐变和纹理。 brush style() 使用Qt::BrushStyle 枚举定义填充模式。默认的笔刷样式是 Qt::NoBrush(取决于你如何…

全光谱护眼灯有哪些?2023全光谱护眼台灯推荐

随着电子设备的不断普及,手机、平板电脑、显示器、电视机等几乎是家家户户的必备品,也正因为眼睛有那么多时间、那么多机会去盯着屏幕,所以如今近视低龄化现象也越来越严重了。随着科技的不断发展,台灯的发展也越来越多样化&#…

在模拟冷藏牛肉加工条件下,冷和酸对荧光假单胞菌和单核细胞增生李斯特菌双菌种生物膜的综合影响

1.1 Title:Combined effects of cold and acid on dual-species biofilms of Pseudomonas fluorescens and Listeria monocytogenes under simulated chilled beef processing conditions 1.2 分区/影响因子:Q1/5.3 1.3 作者:Zhou Guanghui…

黎曼几何与切空间之间的投影

公式: 从黎曼空间投影到切空间,其中P为黎曼均值,也是切空间的参考中心点,Pi是要投影到切空间的点。 从切空间投影回来,其中Si为切空间中的向量。 function Tcov CovToTan(cov,Mcov)Cm12 Mcov^(-1/2);X_new logm(Cm…

Android之自定义View之底部选择弹窗

一、底部选择弹窗 效果: 1、自定义类 可自定义item数量的底部弹窗 (1)CustomBottomPop自定义类 package com.custom.jfrb.ui.first.customView; //自己的包位置import android.content.Context; import android.view.LayoutInflater; i…