Bluetooth Profile Specification之1.0 A2DP初识

简介: Bluetooth Profile Specification之1.0 A2DP初识

image.png

1.A2DP是什么?


The Advanced Audio Distribution Profile.        


高级音频分发配置文件(A2DP)定义了在ACL频道上实现在单声道或立体声道中分发高质量音频内容的协议和程序。


A2DP你需要知道,它不支持远程控制功能。


但是设备可以通过实现A2DP和控制配置文件来支持远程控制的功能。举个例子,在音视频远程控制协议的使用场景中。(AVRCP)


2.A2DP协议独立性

image.png

如上图所示,A2DP依赖于通用访问配置文件(GAP),以及通用音频/视频分发配置文件(GAVDP),它定义了建立音频/视频流所需的程序。A2DP定义了特定于音频流的参数和过程。GAP和GAVDP中定义的术语、用户界面和过程适用于本配置文件,除非另有明确说明。


3.一图看清A2DP协议

image.png


AVDTP由一个用于进行流参数协商的信令实体和一个处理流本身的传输实体组成


上图所示的应用程序层是设备定义应用程序服务和传输服务参数的实体。该实体还将音频流数据调整为所定义的数据包格式,反之亦然。


4.SINK和SOURCE

源(SRC)——当一个设备作为一个数字音频流的源,并被传送到微型卫星的SNK时,它就是SRC。


接收器(SNK)——一种设备是一种SNK,当它作为从SRC传输的数字音频流的接收器时。

image.png


工作场景


设置/控制/操作从SRC到SNK的音频数据流。


A2DP不能工作在下面的情况:


1.该配置文件不支持同步的点对多点分布。


2.由于无线电信号处理、数据缓冲和流数据的编码/解码,SRC和SNK之间存在一定的延迟。抵消这种延误的影响取决于执行情况。


5.A2DP协议传输的安全性

内容保护是在应用程序级提供,而不是蓝牙链路级安全协议的功能。


6.A2DP应用层

配置文件的功能要求:


image.png


6.1 音频流设置

为什么必须要知道AVDTP的版本?


如果该远程设备的AVDTP版本未知,则该设备应执行SDP查询,以获取该远程设备上的AVDTP版本。这应在执行GAVDP_ConnectionEstablishment程序之前进行。这是必需的,因为音频流设置过程中的某些命令依赖于AVDTP版本。


当设备希望开始音频内容流时,设备首先需要设置流媒体联系信号程序和典型信号。在该设置过程中,设备选择最合适的音频流参数。配置了两种服务;一个是应用服务另一个是运输服务能力。这配置文件指定这些信令过程所需的音频特定参数。


6.2 音频流设置

本节包含一个在AVDTP中定义的针对音频流设置的典型信令过程的示例。。在本例中,假设SRC为INT,而SNK为ACP。


SRC和SNK初始化状态为IDLE.


SRC启动流端点(SEP)发现过程。此过程用于返回每个流端点的媒体类型和SEID。SRC查找音频类型流端点。


启动获取所有功能程序,以收集SNK的服务功能。服务能力有两种,一种是应用程序服务能力,另一种是运输服务能力。A2DP的应用服务能力包括音频编解码器能力和内容保护能力。


根据收集到的SEP信息和服务能力,SRC为SNK和SRC本身确定了最合适的音频流参数(编解码器、内容保护和传输服务)。然后,SRC请求SNK通过使用流配置过程来配置SNK的音频参数。SRC还可以配置了自己的音频参数。


然后,按照流建立程序中的定义,建立L2CAP通道。最后,将两个设备的状态设置为<OPEN>。

image.png



6.3 音频流

一旦建立了流连接并执行了GAVDP中的开始流过程,SRC和SNK都处于流状态,其中SRC(SNK)准备发送(接收)音频流。SRC使用发送音频流过程将音频数据发送到SNK,而SNK又使用接收音频流过程来接收音频数据。这些过程的方框图和已创建的数据包格式如图3.1所示。


再次注意,设备应处于流媒体状态,以发送/接收音频流。如果SRC/SNK希望发送/接收音频流,而该状态仍处于打开状态,则SRC/SNK应启动GAVDP中定义的开始流媒体程序。


6.3.1 发送音频流

在发送音频流程序中,如果需要,SRC应将数据编码为信令会话。然后,SRC的应用层应将编码数据调整到定义的媒体负载格式。


当使用内容保护时,内容保护标头可能先于加密的音频内容。这是依赖于内容保护的方法的。


然后,流数据通过AVDTP公开接口(接口4)传递给AVDTP实体。流数据应使用AVDTP选定传输服务在传输通道上发送。


6.3.2 接收音频流

SNK的AVDTP实体应使用所选的传输服务从传输通道接收流数据,并通过AVDTP公开接口传递到应用层。


当内容保护方法激活时,SNK的应用层应按照内容保护方法所述,处理检索到的AVDTP有效负载。通常,此处理需要内容保护头分析和解密相关的加密内容。


如果适用,音频数据的帧应根据所选择的编码格式进行解码。


image.png

音频流媒体程序的方框图和数据包格式


SRC通过用户发起的操作或内部事件启动启动流化过程。两种设备的状态均从<OPEN>改为<流媒体>。在此过程完成后,将开始播放音频流。


image.png

目录
相关文章
|
4月前
|
缓存 iOS开发
Flutter run出现No Provisioning Profile was found for your project‘s Bundle Identifier or your device
Flutter run出现No Provisioning Profile was found for your project‘s Bundle Identifier or your device
58 2
|
7月前
|
传感器 Java Shell
android 8.1 disable unsupported sensor
android 8.1 disable unsupported sensor
44 0
|
流计算
Blueprint Subsystem Plug-in description
Blueprint Subsystem Plug-in description
92 0
|
Java 数据库连接 mybatis
URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
Bluetooth Profile Specification之3.0 RFCOMM服务
Bluetooth Profile Specification之3.0 RFCOMM服务
355 1
Bluetooth Profile Specification之3.0 RFCOMM服务
|
编解码 索引
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family
320 0
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family