蓝牙:A2DP Shell

a2dp 命令公开部分 A2DP API。

以下示例假设您已连接两台设备。

A2DP 连接

演示创建 A2DP 连接的流程:

  • 双方使用 a2dp register_cb 注册 A2DP 回调。

  • 任一方都可以使用 a2dp connect 建立 A2DP 连接,这将创建 AVDTP 信令通道。

  • 任一方都可以使用 a2dp get_conn 获取 ACL 连接。

  • 任一方都可以使用 a2dp disconnect 断开 A2DP 连接。

uart:~$ a2dp register_cb
success
uart:~$ a2dp connect
Bonded with XX:XX:XX:XX:XX:XX
Security changed: XX:XX:XX:XX:XX:XX level 2
a2dp connected
uart:~$ a2dp get_conn
a2dp conn is: 0xXXXXXXXX
uart:~$ a2dp disconnect
a2dp disconnected

基本 A2DP 操作

演示基本 A2DP 操作的流程:

  • 源端和接收端分别使用 a2dp register_ep source sbc 和 a2dp register_ep sink sbc 注册流端点。

  • 基于 a2dp 连接 创建 A2DP 连接。

  • 发起者使用 a2dp discover_peer_eps 0x0104 发现远端设备的流端点。

  • 发起者在发现远端端点后使用 a2dp configure 配置流以创建流。

  • 发起者使用 a2dp establish 建立流。

  • 接收端使用 a2dp send_delay_report 发送延迟报告。

  • 发起者使用 a2dp start 启动媒体。

  • 源端使用 a2dp send_media 测试媒体发送,发送一个测试数据包数据。

  • 发起者使用 a2dp suspend 暂停媒体。

  • 发起者使用 a2dp release 释放媒体。

备注

在以下日志中,发起者对应 A2DP 源端角色,接受者对应 A2DP 接收端角色。延迟报告只能由接收端角色发送,媒体数据只能由源端角色发送。

uart:~$ a2dp register_ep source sbc
SBC source endpoint is registered
uart:~$ a2dp discover_peer_eps 0x0104
endpoint id: 1, (sink), (idle):
  codec type: SBC
  sample frequency:
          44100
          48000
  channel mode:
          Mono
          Stereo
          Joint-Stereo
  Block Length:
          16
  Subbands:
          8
  Allocation Method:
          Loudness
  Bitpool Range: 18 - 35
uart:~$ a2dp configure
success to configure
stream configured
uart:~$ a2dp establish
success to establish
stream established
<input `a2dp send_delay_report` in sink side>
receive delay report and accept
received delay report: 1 1/10ms
uart:~$ a2dp start
success to start
stream started
uart:~$ a2dp send_media
frames num: 1, data length: 160
data: 1, 2, 3, 4, 5, 6 ......
uart:~$ a2dp suspend
success to suspend
stream suspended
uart:~$ a2dp release
success to release
stream released

中止操作

演示中止操作:

uart:~$ a2dp abort
success to abort
stream released

获取配置和重新配置操作

演示获取配置和重新配置操作:

  • 基于 基本 A2DP 操作 建立 A2DP 流。

  • 发起者使用 a2dp get_config 获取配置。

  • 发起者使用 a2dp reconfigure 重新配置流。

uart:~$ a2dp get_config
get config result: 0
sample rate 44100Hz
uart:~$ a2dp reconfigure
success to configure
stream configured