蓝牙音乐协议分析之A2DP和AVRCP连接流程

1. 协议架构

上面描述的就是整体的协议架构,我们针对蓝牙音乐的协议架构分析,其中涉及到了几个协议:

其中针对业务层的逻辑,涉及到了A2DP和AVRCP协议;

1.1 AVRCP介绍

AVRCP全称:Audio/Video Remote Control Profile,即音频/视频远程控制配置文件。

AVRCP设计用于提供控制TV,Hi-Fi设备等的标准接口,此配置文件用于许可单个远程控制设备(或其他设备)控制所有用于可以接入的A/V设备。AVRCP定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其他类型的远程控制操作(其实和DLNA的指令控制类似);

AVRCP是一种在蓝牙协议栈A2DP/AVRCP上实现的控制技术;

1.2 A2DP介绍

A2DP全称:Advenced Audio Distribution Profile,即蓝牙音频传输模型协定;

A2DP规定了使用蓝牙异步传输信道方式,传输高质量音乐文件数据的协议堆栈软件和使用方法,基于该协议就能通过以蓝牙方式传输高品质的音乐。例如使用蓝牙耳机或蓝牙音响设备来收听音乐了;

针对上述的相关的协议,其实和蓝牙命令请求和响应有密切的关联;

2. Command & Event
2.1 Command

我们整理一下蓝牙音乐过程中涉及到的常见的一些Command;

ProtocolJNICommandDesc
A2dpSinkBluetoothA2dpSinkServiceJniclassInitNative初始化A2dpSink Native
A2dpSinkBluetoothA2dpSinkServiceJniconnectA2dpNative用于连接A2dp
SdpBluetoothSdpJnisdpCreateOppOpsRecordNative创建服务记录列表
SdpBluetoothSdpJnisdpSearchNative搜索服务
AvrcpBluetoothAvrcpControllerJnigetPlayerListNative获取播放列表
AvrcpBluetoothAvrcpControllerJnisendPassThroughCommandNative68:播放 70:暂停 75:下一首 76:上一首

2.2 Event

Event代表的就是上层业务层向下发送指令到底层返回的callback响应;

ProtocolJNIEventDesc
A2dpSinkBluetoothA2dpSinkServiceJnibta2dp_connection_state_callback响应A2dp服务连接
SdpBluetoothSdpJnisdp_search_callback响应sdp服务搜索结果
A2dpSinkBluetoothA2dpSinkServiceJnibta2dp_audio_config_callbackA2dp audio配置变化回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_connection_state_callbackAvrcp服务连接状态回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_get_rcfeatures_callback
AvrcpBluetoothAvrcpControllerJnibtavrcp_play_status_changed_callback当前播放状态变化信息回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_track_changed_callbackTrackInfo信息变化回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_set_addressed_player_callback设置address地址信息结果回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_uids_changed_callbackuid变化回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_get_folder_items_callback获取文件夹目录信息回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_playerapplicationsetting_callback播放器设置结果回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_playerapplicationsetting_changed_callback更换播放器结果回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_available_player_changed_callback播放可行性变化回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_addressed_player_update_callbackaddress信息变化回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_play_position_changed_callback播放进度条信息回调
AvrcpBluetoothAvrcpControllerJnibtavrcp_passthrough_response_callback指令响应结果回调
A2dpSinkBluetoothA2dpSinkServiceJnibta2dp_audio_state_callbackA2dp audio状态变化结果回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值