跳转至

audio

audio 提供蓝牙基础速率媒体音频流与媒体控制服务,支持 A2DP (Advanced Audio Distribution Profile) 音频流启停与编解码信息上报,以及 AVRCP (Audio/Video Remote Control Profile) 媒体操作、信息更新和音量控制功能。

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"
#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

接口清单

接口名称 功能简述
bs_br_media_a2dp_register 注册蓝牙A2DP服务
bs_br_media_a2dp_unregister 去注册蓝牙A2DP服务
bs_br_media_a2dp_connect 建立蓝牙A2DP连接
bs_br_media_a2dp_disconnect 断开蓝牙A2DP连接
bs_br_start_media_stream 蓝牙媒体音频流启播请求
bs_br_stop_media_stream 蓝牙媒体音频流停止请求
bs_br_media_stream_operate_result_reply 蓝牙媒体音频流操作响应
bs_br_media_stream_register_callbacks 注册A2DP媒体流回调函数
bs_br_media_stream_unregister_callbacks 去注册A2DP媒体流回调函数
bs_br_media_avrcp_register 注册蓝牙AVRCP服务
bs_br_media_avrcp_unregister 去注册蓝牙AVRCP服务
bs_br_media_avrcp_connect 建立蓝牙AVRCP连接
bs_br_media_avrcp_disconnect 断开蓝牙AVRCP连接
bs_br_media_operate_request 蓝牙媒体操作请求
bs_br_media_update_info 蓝牙媒体信息更新
bs_br_media_volume_operate 蓝牙媒体音量操作
bs_br_media_volume_notify 蓝牙媒体音量通知
bs_br_media_register_callbacks 注册AVRCP媒体回调函数
bs_br_media_unregister_callbacks 去注册AVRCP媒体回调函数

Functions

bs_br_media_a2dp_register

errcode_t bs_br_media_a2dp_register(uint8_t a2dp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 注册蓝牙A2DP服务
  • 指定本地A2DP服务角色(SNK或SRC)
  • 注册后本端A2DP服务可被对端设备发现和连接

入参

名称 参数类型 详细说明 约束取值范围
a2dp_role uint8_t 本地A2DP服务角色 - BR_MEDIA_A2DP_SNK (0x01)
- BR_MEDIA_A2DP_SRC (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 A2DP服务注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_a2dp_unregister

errcode_t bs_br_media_a2dp_unregister(uint8_t a2dp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 去注册蓝牙A2DP服务
  • 指定需去注册的A2DP服务角色
  • 去注册后该角色的A2DP服务不再可用

入参

名称 参数类型 详细说明 约束取值范围
a2dp_role uint8_t 本地A2DP服务角色 - BR_MEDIA_A2DP_SNK (0x01)
- BR_MEDIA_A2DP_SRC (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 A2DP服务去注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_a2dp_connect

errcode_t bs_br_media_a2dp_connect(uint16_t dev_id, uint8_t a2dp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 建立蓝牙A2DP连接
  • 指定对端设备编号和本端A2DP服务角色
  • 发起A2DP连接请求至对端设备

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
a2dp_role uint8_t 本端A2DP服务角色 - BR_MEDIA_A2DP_SNK (0x01)
- BR_MEDIA_A2DP_SRC (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 A2DP连接请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_a2dp_disconnect

errcode_t bs_br_media_a2dp_disconnect(uint16_t dev_id, uint8_t a2dp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 断开蓝牙A2DP连接
  • 指定对端设备编号和本端A2DP服务角色
  • 释放与对端设备的A2DP连接

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
a2dp_role uint8_t 本端A2DP服务角色 - BR_MEDIA_A2DP_SNK (0x01)
- BR_MEDIA_A2DP_SRC (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 A2DP断连请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_start_media_stream

errcode_t bs_br_start_media_stream(uint16_t dev_id)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 蓝牙媒体音频流启播请求
  • 向指定对端设备发起音频流启播请求
  • 启播请求被接受后进入播放状态

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 音频流启播请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_stop_media_stream

errcode_t bs_br_stop_media_stream(uint16_t dev_id)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 蓝牙媒体音频流停止请求
  • 向指定对端设备发起音频流停止请求
  • 停止请求被接受后音频流进入停止状态

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 音频流停止请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_stream_operate_result_reply

errcode_t bs_br_media_stream_operate_result_reply(uint16_t dev_id, uint8_t opt_type, bool is_accept)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 蓝牙媒体音频流操作响应
  • 对对端设备发起的音频流操作请求进行接受或拒绝应答
  • 根据操作类型和响应结果决定后续流状态

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
opt_type uint8_t 操作类型 - BR_MEDIA_STREAM_OPT_START (0x01)
is_accept bool 是否接受操作请求 true:接受;false:拒绝

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 操作响应发送成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_stream_register_callbacks

errcode_t bs_br_media_stream_register_callbacks(uint8_t app_id, bs_br_media_stream_callbacks_t *func)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 注册A2DP媒体流回调函数
  • 应用通过注册回调接收A2DP连接状态、流状态和编解码信息上报
  • 支持多个应用注册各自的回调

入参

名称 参数类型 详细说明 约束取值范围
app_id uint8_t 应用ID 默认为0
func bs_br_media_stream_callbacks_t * 回调函数指针 非空指针

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 回调注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_stream_unregister_callbacks

errcode_t bs_br_media_stream_unregister_callbacks(uint8_t app_id)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_stream.h"

功能说明

  • 去注册A2DP媒体流回调函数
  • 取消指定应用ID的回调注册
  • 去注册后该应用不再接收A2DP媒体流相关上报

入参

名称 参数类型 详细说明 约束取值范围
app_id uint8_t 应用ID 默认为0

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 回调去注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_avrcp_register

errcode_t bs_br_media_avrcp_register(uint8_t avrcp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 注册蓝牙AVRCP服务
  • 指定本地AVRCP服务角色(CT或TG)
  • 注册后本端AVRCP服务可被对端设备发现和连接

入参

名称 参数类型 详细说明 约束取值范围
avrcp_role uint8_t 本地AVRCP服务角色 - BR_MEDIA_AVRCP_CT (0x01)
- BR_MEDIA_AVRCP_TG (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 AVRCP服务注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_avrcp_unregister

errcode_t bs_br_media_avrcp_unregister(uint8_t avrcp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 去注册蓝牙AVRCP服务
  • 指定需去注册的AVRCP服务角色
  • 去注册后该角色的AVRCP服务不再可用

入参

名称 参数类型 详细说明 约束取值范围
avrcp_role uint8_t 本地AVRCP服务角色 - BR_MEDIA_AVRCP_CT (0x01)
- BR_MEDIA_AVRCP_TG (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 AVRCP服务去注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_avrcp_connect

errcode_t bs_br_media_avrcp_connect(uint16_t dev_id, uint8_t avrcp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 建立蓝牙AVRCP连接
  • 指定对端设备编号和本端AVRCP服务角色
  • 发起AVRCP连接请求至对端设备

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
avrcp_role uint8_t 本端AVRCP服务角色 - BR_MEDIA_AVRCP_CT (0x01)
- BR_MEDIA_AVRCP_TG (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 AVRCP连接请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_avrcp_disconnect

errcode_t bs_br_media_avrcp_disconnect(uint16_t dev_id, uint8_t avrcp_role)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 断开蓝牙AVRCP连接
  • 指定对端设备编号和本端AVRCP服务角色
  • 释放与对端设备的AVRCP连接

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
avrcp_role uint8_t 本端AVRCP服务角色 - BR_MEDIA_AVRCP_CT (0x01)
- BR_MEDIA_AVRCP_TG (0x02)

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 AVRCP断连请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_operate_request

errcode_t bs_br_media_operate_request(uint16_t dev_id, uint8_t opt_type, uint8_t *param, uint16_t param_len)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 蓝牙媒体操作请求
  • 向指定对端设备发送媒体控制操作请求(如播放、暂停、上下曲等)
  • 操作类型和参数由opt_type和param指定

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
opt_type uint8_t 媒体操作类型 - BR_MEDIA_OPT_PLAY (0x01)
- BR_MEDIA_OPT_STOP (0x02)
- BR_MEDIA_OPT_PAUSE (0x03)
- BR_MEDIA_OPT_FORWARD (0x04)
- BR_MEDIA_OPT_BACKWARD (0x05)
- BR_MEDIA_OPT_REWIND (0x06)
- BR_MEDIA_OPT_FAST_FORWARD (0x07)
- BR_MEDIA_OPT_REGISTER_ATTRIBUTE_NOTIFICATION (0x08)
- BR_MEDIA_OPT_UNREGISTER_ATTRIBUTE_NOTIFICATION (0x09)
- BR_MEDIA_OPT_REGISTER_POSITION_NOTIFICATION (0x0A)
- BR_MEDIA_OPT_UNREGISTER_POSITION_NOTIFICATION (0x0B)
param uint8_t * 媒体操作参数指针 依opt_type而定,部分操作param为NULL
param_len uint16_t 媒体操作参数长度 依opt_type而定,部分操作param_len为0

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 媒体操作请求成功发起
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_update_info

errcode_t bs_br_media_update_info(uint16_t dev_id, uint8_t type, uint8_t *param, uint16_t param_len)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 蓝牙媒体信息更新
  • 向指定对端设备更新媒体信息(如播放状态、媒体元素属性、播放位置等)
  • 信息类型和参数由type和param指定

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
type uint8_t 媒体信息类型 - BR_MEDIA_INFO_PLAY_STATUS (0x01)
- BR_MEDIA_INFO_ELEMENT_ATTR (0x02)
- BR_MEDIA_INFO_PLAYBACK_POSITION (0x03)
param uint8_t * 媒体信息参数指针 依type而定
param_len uint16_t 媒体信息参数长度 依type而定

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 媒体信息更新成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_volume_operate

errcode_t bs_br_media_volume_operate(uint16_t dev_id, uint8_t type, uint8_t volume)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 蓝牙媒体音量操作
  • 向指定对端设备发起音量控制操作(如调高、调低、静音、设置绝对音量)
  • 操作类型为设置绝对音量时需指定音量值

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
type uint8_t 音量操作类型 - BR_MEDIA_VOLUME_OPT_UP (0x01)
- BR_MEDIA_VOLUME_OPT_DOWN (0x02)
- BR_MEDIA_VOLUME_OPT_MUTE (0x03)
- BR_MEDIA_VOLUME_OPT_SET_ABSOLUTE (0x04)
volume uint8_t 绝对音量值 0x00 ~ 0x7F,操作类型为BR_MEDIA_VOLUME_OPT_SET_ABSOLUTE时必须设置

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 音量操作成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_volume_notify

errcode_t bs_br_media_volume_notify(uint16_t dev_id, uint8_t volume)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 蓝牙媒体音量通知
  • 向指定对端设备通知绝对音量值
  • 用于同步本端音量状态至对端设备

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 对端设备编号 有效设备编号
volume uint8_t 音量值 0x00 ~ 0x7F

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 音量通知成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_register_callbacks

errcode_t bs_br_media_register_callbacks(uint8_t app_id, bs_br_media_callbacks_t *func)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 注册AVRCP媒体回调函数
  • 应用通过注册回调接收AVRCP连接状态、媒体操作请求、信息更新、音量操作和音量通知上报
  • 支持多个应用注册各自的回调

入参

名称 参数类型 详细说明 约束取值范围
app_id uint8_t 应用ID 默认为0
func bs_br_media_callbacks_t * 回调函数指针 非空指针

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 回调注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

bs_br_media_unregister_callbacks

errcode_t bs_br_media_unregister_callbacks(uint8_t app_id)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_br_media_control.h"

功能说明

  • 去注册AVRCP媒体回调函数
  • 取消指定应用ID的回调注册
  • 去注册后该应用不再接收AVRCP媒体相关上报

入参

名称 参数类型 详细说明 约束取值范围
app_id uint8_t 应用ID 默认为0

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 回调去注册成功
Other 其他错误码,参考errcode_bt_t 执行失败

Type definitions

bs_br_media_a2dp_conn_state_cbk

typedef void (*bs_br_media_a2dp_conn_state_cbk)(uint16_t dev_id, uint8_t a2dp_role, uint8_t conn_state);

使用说明

  • 调用时机:A2DP连接状态变化时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 a2dp_role:本端A2DP服务角色
  • 参数 conn_state:服务连接状态

bs_br_media_stream_state_changed_cbk

typedef void (*bs_br_media_stream_state_changed_cbk)(uint16_t dev_id, uint8_t a2dp_role, uint8_t stream_state);

使用说明

  • 调用时机:媒体流状态变化时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 a2dp_role:本端A2DP服务角色
  • 参数 stream_state:流状态

bs_br_media_stream_codec_report_cbk

typedef void (*bs_br_media_stream_codec_report_cbk)(uint16_t dev_id, uint8_t a2dp_role, bs_br_media_codec_info_t *codec);

使用说明

  • 调用时机:媒体流编解码信息上报时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 a2dp_role:本端A2DP服务角色
  • 参数 codec:流编解码参数指针

bs_br_media_avrcp_conn_state_cbk

typedef void (*bs_br_media_avrcp_conn_state_cbk)(uint16_t dev_id, uint8_t avrcp_role, uint8_t conn_state);

使用说明

  • 调用时机:AVRCP连接状态变化时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 avrcp_role:本端AVRCP服务角色
  • 参数 conn_state:服务连接状态

bs_br_media_operate_request_cbk

typedef void (*bs_br_media_operate_request_cbk)(uint16_t dev_id, uint8_t opt_type, uint8_t *param, uint16_t param_len);

使用说明

  • 调用时机:对端设备发起媒体操作请求时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 opt_type:媒体操作类型
  • 参数 param:媒体操作参数指针
  • 参数 param_len:媒体操作参数长度

bs_br_media_info_update_cbk

typedef void (*bs_br_media_info_update_cbk)(uint16_t dev_id, uint8_t type, uint8_t *param, uint16_t param_len);

使用说明

  • 调用时机:媒体信息更新时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 type:媒体信息类型
  • 参数 param:媒体信息参数指针
  • 参数 param_len:媒体信息参数长度

bs_br_media_volume_operate_cbk

typedef void (*bs_br_media_volume_operate_cbk)(uint16_t dev_id, uint8_t type, uint8_t volume);

使用说明

  • 调用时机:对端设备发起音量操作时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 type:音量操作类型
  • 参数 volume:绝对音量值

bs_br_media_volume_info_report_cbk

typedef void (*bs_br_media_volume_info_report_cbk)(uint16_t dev_id, uint8_t volume);

使用说明

  • 调用时机:对端设备通知绝对音量时由协议栈调用
  • 参数 dev_id:对端设备编号
  • 参数 volume:音量值

Associations

bs_br_media_codec_info_t.info

union {
    bs_br_media_sbc_codec_t sbc;
    bs_br_media_aac_codec_t aac;
} info;
成员名称 类型 描述 接口使用逻辑
sbc bs_br_media_sbc_codec_t SBC编解码信息 编解码信息上报中SBC格式载体
aac bs_br_media_aac_codec_t AAC编解码信息 编解码信息上报中AAC格式载体

Enumerations

bs_br_media_a2dp_role_t

typedef enum {
    BR_MEDIA_A2DP_SNK = 0x01,
    BR_MEDIA_A2DP_SRC = 0x02,
} bs_br_media_a2dp_role_t;
枚举成员 取值 描述
BR_MEDIA_A2DP_SNK 0x01 A2DP Sink角色
BR_MEDIA_A2DP_SRC 0x02 A2DP Source角色

bs_br_media_stream_opt_type_t

typedef enum {
    BR_MEDIA_STREAM_OPT_START = 0x01,
} bs_br_media_stream_opt_type_t;
枚举成员 取值 描述
BR_MEDIA_STREAM_OPT_START 0x01 音频流启播操作

bs_br_media_stream_state_t

typedef enum {
    BR_MEDIA_STREAM_STARTING = 1,
    BR_MEDIA_STREAM_STREAMING,
    BR_MEDIA_STREAM_STOPED,
    BR_MEDIA_STREAM_CLOSED,
} bs_br_media_stream_state_t;
枚举成员 取值 描述
BR_MEDIA_STREAM_STARTING 1 启播请求状态
BR_MEDIA_STREAM_STREAMING 2 播放状态
BR_MEDIA_STREAM_STOPED 3 停止状态
BR_MEDIA_STREAM_CLOSED 4 关闭状态

bs_br_media_sbc_sf_t

typedef enum {
    BR_MEDIA_SBC_SF_16000 = 0x80,
    BR_MEDIA_SBC_SF_32000 = 0x40,
    BR_MEDIA_SBC_SF_44100 = 0x20,
    BR_MEDIA_SBC_SF_48000 = 0x10,
    BR_MEDIA_SBC_SF_ALL   = 0xF0,
} bs_br_media_sbc_sf_t;
枚举成员 取值 描述
BR_MEDIA_SBC_SF_16000 0x80 16KHz采样率
BR_MEDIA_SBC_SF_32000 0x40 32KHz采样率
BR_MEDIA_SBC_SF_44100 0x20 44.1KHz采样率
BR_MEDIA_SBC_SF_48000 0x10 48KHz采样率
BR_MEDIA_SBC_SF_ALL 0xF0 全部采样率

bs_br_media_sbc_chmode_t

typedef enum {
    BR_MEDIA_SBC_CHMODE_MONO         = 0x08,
    BR_MEDIA_SBC_CHMODE_DUAL_CHANNEL = 0x04,
    BR_MEDIA_SBC_CHMODE_STEREO       = 0x02,
    BR_MEDIA_SBC_CHMODE_JOINT_STEREO = 0x01,
    BR_MEDIA_SBC_CHMODE_ALL          = 0x0F,
} bs_br_media_sbc_chmode_t;
枚举成员 取值 描述
BR_MEDIA_SBC_CHMODE_MONO 0x08 单声道
BR_MEDIA_SBC_CHMODE_DUAL_CHANNEL 0x04 双通道
BR_MEDIA_SBC_CHMODE_STEREO 0x02 立体声
BR_MEDIA_SBC_CHMODE_JOINT_STEREO 0x01 联合立体声
BR_MEDIA_SBC_CHMODE_ALL 0x0F 全部通道模式

bs_br_media_sbc_block_t

typedef enum {
    BR_MEDIA_SBC_BLOCK_4   = 0x80,
    BR_MEDIA_SBC_BLOCK_8   = 0x40,
    BR_MEDIA_SBC_BLOCK_12  = 0x20,
    BR_MEDIA_SBC_BLOCK_16  = 0x10,
    BR_MEDIA_SBC_BLOCK_ALL = 0xF0,
} bs_br_media_sbc_block_t;
枚举成员 取值 描述
BR_MEDIA_SBC_BLOCK_4 0x80 块长度为4
BR_MEDIA_SBC_BLOCK_8 0x40 块长度为8
BR_MEDIA_SBC_BLOCK_12 0x20 块长度为12
BR_MEDIA_SBC_BLOCK_16 0x10 块长度为16
BR_MEDIA_SBC_BLOCK_ALL 0xF0 全部块长度

bs_br_media_sbc_subband_t

typedef enum {
    BR_MEDIA_SBC_SUBBAND_4   = 0x08,
    BR_MEDIA_SBC_SUBBAND_8   = 0x04,
    BR_MEDIA_SBC_SUBBAND_ALL = 0x0C,
} bs_br_media_sbc_subband_t;
枚举成员 取值 描述
BR_MEDIA_SBC_SUBBAND_4 0x08 子带个数为4
BR_MEDIA_SBC_SUBBAND_8 0x04 子带个数为8
BR_MEDIA_SBC_SUBBAND_ALL 0x0C 全部子带个数

bs_br_media_sbc_allocation_t

typedef enum {
    BR_MEDIA_SBC_SNR       = 0x02,
    BR_MEDIA_SBC_LOUDNESS  = 0x01,
    BR_MEDIA_SBC_ALLOC_ALL = 0x03,
} bs_br_media_sbc_allocation_t;
枚举成员 取值 描述
BR_MEDIA_SBC_SNR 0x02 信噪比优化
BR_MEDIA_SBC_LOUDNESS 0x01 响度优化
BR_MEDIA_SBC_ALLOC_ALL 0x03 全部分配方式

bs_br_media_aac_object_type_t

typedef enum {
    BR_MEDIA_AAC_OBJECT_TYPE_2_LC       = 0x80,
    BR_MEDIA_AAC_OBJECT_TYPE_4_LC       = 0x40,
    BR_MEDIA_AAC_OBJECT_TYPE_4_LTP      = 0x20,
    BR_MEDIA_AAC_OBJECT_TYPE_4_SCALABLE = 0x10,
    BR_MEDIA_AAC_OBJECT_TYPE_ALL        = 0xF0,
} bs_br_media_aac_object_type_t;
枚举成员 取值 描述
BR_MEDIA_AAC_OBJECT_TYPE_2_LC 0x80 MPEG-2 AAC LC对象类型
BR_MEDIA_AAC_OBJECT_TYPE_4_LC 0x40 MPEG-4 AAC LC对象类型
BR_MEDIA_AAC_OBJECT_TYPE_4_LTP 0x20 MPEG-4 AAC LTP对象类型
BR_MEDIA_AAC_OBJECT_TYPE_4_SCALABLE 0x10 MPEG-4 AAC Scalable对象类型
BR_MEDIA_AAC_OBJECT_TYPE_ALL 0xF0 全部对象类型

bs_br_media_aac_sf_t

typedef enum {
    BR_MEDIA_AAC_SF_8000  = 0x0800,
    BR_MEDIA_AAC_SF_11025 = 0x0400,
    BR_MEDIA_AAC_SF_12000 = 0x0200,
    BR_MEDIA_AAC_SF_16000 = 0x0100,
    BR_MEDIA_AAC_SF_22050 = 0x0080,
    BR_MEDIA_AAC_SF_24000 = 0x0040,
    BR_MEDIA_AAC_SF_32000 = 0x0020,
    BR_MEDIA_AAC_SF_44100 = 0x0010,
    BR_MEDIA_AAC_SF_48000 = 0x0008,
    BR_MEDIA_AAC_SF_64000 = 0x0004,
    BR_MEDIA_AAC_SF_88200 = 0x0002,
    BR_MEDIA_AAC_SF_96000 = 0x0001,
} bs_br_media_aac_sf_t;
枚举成员 取值 描述
BR_MEDIA_AAC_SF_8000 0x0800 8KHz采样率
BR_MEDIA_AAC_SF_11025 0x0400 11.025KHz采样率
BR_MEDIA_AAC_SF_12000 0x0200 12KHz采样率
BR_MEDIA_AAC_SF_16000 0x0100 16KHz采样率
BR_MEDIA_AAC_SF_22050 0x0080 22.05KHz采样率
BR_MEDIA_AAC_SF_24000 0x0040 24KHz采样率
BR_MEDIA_AAC_SF_32000 0x0020 32KHz采样率
BR_MEDIA_AAC_SF_44100 0x0010 44.1KHz采样率
BR_MEDIA_AAC_SF_48000 0x0008 48KHz采样率
BR_MEDIA_AAC_SF_64000 0x0004 64KHz采样率
BR_MEDIA_AAC_SF_88200 0x0002 88.2KHz采样率
BR_MEDIA_AAC_SF_96000 0x0001 96KHz采样率

bs_br_media_aac_channel_t

typedef enum {
    BR_MEDIA_AAC_CHANNEL_1   = 0x08,
    BR_MEDIA_AAC_CHANNEL_2   = 0x04,
    BR_MEDIA_AAC_CHANNEL_ALL = 0x0C,
} bs_br_media_aac_channel_t;
枚举成员 取值 描述
BR_MEDIA_AAC_CHANNEL_1 0x08 1通道
BR_MEDIA_AAC_CHANNEL_2 0x04 2通道
BR_MEDIA_AAC_CHANNEL_ALL 0x0C 全部通道

bs_br_media_aac_vbr_t

typedef enum {
    BR_MEDIA_AAC_VBR_SUPPORTED = 0x80,
} bs_br_media_aac_vbr_t;
枚举成员 取值 描述
BR_MEDIA_AAC_VBR_SUPPORTED 0x80 支持可变比特率

bs_br_media_codec_type_t

typedef enum {
    BR_MEDIA_STREAM_CODEC_SBC = 0x00,
    BR_MEDIA_STREAM_CODEC_AAC = 0x01,
} bs_br_media_codec_type_t;
枚举成员 取值 描述
BR_MEDIA_STREAM_CODEC_SBC 0x00 SBC编码格式
BR_MEDIA_STREAM_CODEC_AAC 0x01 MPEG24/AAC编码格式

bs_br_media_avrcp_role_t

typedef enum {
    BR_MEDIA_AVRCP_CT = 0x01,
    BR_MEDIA_AVRCP_TG = 0x02,
} bs_br_media_avrcp_role_t;
枚举成员 取值 描述
BR_MEDIA_AVRCP_CT 0x01 AVRCP Controller角色
BR_MEDIA_AVRCP_TG 0x02 AVRCP Target角色

bs_br_media_element_attr_id_t

typedef enum {
    BR_MEDIA_ELEMENT_ATTR_TITLE = 0x01,
    BR_MEDIA_ELEMENT_ATTR_ARTIST_NAME = 0x02,
    BR_MEDIA_ELEMENT_ATTR_ALBUM_NAME = 0x03,
    BR_MEDIA_ELEMENT_ATTR_TRACK_NUMBER = 0x04,
    BR_MEDIA_ELEMENT_ATTR_TOTAL_NUMBER_OF_TRACKS = 0x05,
    BR_MEDIA_ELEMENT_ATTR_TRACK_GENRE = 0x06,
    BR_MEDIA_ELEMENT_ATTR_TRACK_PLAYING_TIME = 0x07,
} bs_br_media_element_attr_id_t;
枚举成员 取值 描述
BR_MEDIA_ELEMENT_ATTR_TITLE 0x01 标题,歌曲名或内容描述
BR_MEDIA_ELEMENT_ATTR_ARTIST_NAME 0x02 艺人、表演者或团体
BR_MEDIA_ELEMENT_ATTR_ALBUM_NAME 0x03 唱片,专辑
BR_MEDIA_ELEMENT_ATTR_TRACK_NUMBER 0x04 音频文件的原始编号
BR_MEDIA_ELEMENT_ATTR_TOTAL_NUMBER_OF_TRACKS 0x05 tracks/elements的总个数
BR_MEDIA_ELEMENT_ATTR_TRACK_GENRE 0x06 风格,流派
BR_MEDIA_ELEMENT_ATTR_TRACK_PLAYING_TIME 0x07 音频文件的播放时间

bs_br_media_operate_type_t

typedef enum {
    BR_MEDIA_OPT_PLAY = 0x01,
    BR_MEDIA_OPT_STOP = 0x02,
    BR_MEDIA_OPT_PAUSE = 0x03,
    BR_MEDIA_OPT_FORWARD = 0x04,
    BR_MEDIA_OPT_BACKWARD = 0x05,
    BR_MEDIA_OPT_REWIND = 0x06,
    BR_MEDIA_OPT_FAST_FORWARD = 0x07,
    BR_MEDIA_OPT_REGISTER_ATTRIBUTE_NOTIFICATION = 0x08,
    BR_MEDIA_OPT_UNREGISTER_ATTRIBUTE_NOTIFICATION = 0x09,
    BR_MEDIA_OPT_REGISTER_POSITION_NOTIFICATION = 0x0A,
    BR_MEDIA_OPT_UNREGISTER_POSITION_NOTIFICATION = 0x0B,
} bs_br_media_operate_type_t;
枚举成员 取值 描述
BR_MEDIA_OPT_PLAY 0x01 播放操作,param为NULL,param_len为0
BR_MEDIA_OPT_STOP 0x02 停止操作,param为NULL,param_len为0
BR_MEDIA_OPT_PAUSE 0x03 暂停操作,param为NULL,param_len为0
BR_MEDIA_OPT_FORWARD 0x04 下一首,param为NULL,param_len为0
BR_MEDIA_OPT_BACKWARD 0x05 上一首,param为NULL,param_len为0
BR_MEDIA_OPT_REWIND 0x06 从起始位置开始播放,param为NULL,param_len为0
BR_MEDIA_OPT_FAST_FORWARD 0x07 快进,param为NULL,param_len为0
BR_MEDIA_OPT_REGISTER_ATTRIBUTE_NOTIFICATION 0x08 注册歌词属性通知,param为NULL,param_len为0
BR_MEDIA_OPT_UNREGISTER_ATTRIBUTE_NOTIFICATION 0x09 去注册歌词属性通知,param为NULL,param_len为0
BR_MEDIA_OPT_REGISTER_POSITION_NOTIFICATION 0x0A 注册已播放时长变化通知,param为通知间隔,param_len为4字节
BR_MEDIA_OPT_UNREGISTER_POSITION_NOTIFICATION 0x0B 去注册已播放时长变化通知,param为NULL,param_len为0

br_media_play_status_t

typedef enum {
    BR_MEDIA_PLAY_STATUS_STOPPED = 0x00,
    BR_MEDIA_PLAY_STATUS_PLAYING = 0x01,
    BR_MEDIA_PLAY_STATUS_PAUSED = 0x02,
    BR_MEDIA_PLAY_STATUS_FWD_SEEK = 0x03,
    BR_MEDIA_PLAY_STATUS_REV_SEEK = 0x04,
} br_media_play_status_t;
枚举成员 取值 描述
BR_MEDIA_PLAY_STATUS_STOPPED 0x00 停止状态
BR_MEDIA_PLAY_STATUS_PLAYING 0x01 播放状态
BR_MEDIA_PLAY_STATUS_PAUSED 0x02 暂停状态
BR_MEDIA_PLAY_STATUS_FWD_SEEK 0x03 快进状态
BR_MEDIA_PLAY_STATUS_REV_SEEK 0x04 快退状态

br_media_info_type_t

typedef enum {
    BR_MEDIA_INFO_PLAY_STATUS = 0x01,
    BR_MEDIA_INFO_ELEMENT_ATTR = 0x02,
    BR_MEDIA_INFO_PLAYBACK_POSITION = 0x03,
} br_media_info_type_t;
枚举成员 取值 描述
BR_MEDIA_INFO_PLAY_STATUS 0x01 媒体信息-播放状态,param为br_media_play_status_t,param_len为1
BR_MEDIA_INFO_ELEMENT_ATTR 0x02 媒体信息-媒体元素属性,param为bs_br_media_element_attribute_t指针,param_len为结构体长度
BR_MEDIA_INFO_PLAYBACK_POSITION 0x03 媒体信息-当前播放时长(毫秒),param_len为4

bs_br_media_volume_opt_type_t

typedef enum {
    BR_MEDIA_VOLUME_OPT_UP = 0x01,
    BR_MEDIA_VOLUME_OPT_DOWN = 0x02,
    BR_MEDIA_VOLUME_OPT_MUTE = 0x03,
    BR_MEDIA_VOLUME_OPT_SET_ABSOLUTE = 0x04,
} bs_br_media_volume_opt_type_t;
枚举成员 取值 描述
BR_MEDIA_VOLUME_OPT_UP 0x01 调高音量
BR_MEDIA_VOLUME_OPT_DOWN 0x02 调低音量
BR_MEDIA_VOLUME_OPT_MUTE 0x03 静音
BR_MEDIA_VOLUME_OPT_SET_ABSOLUTE 0x04 设置绝对音量,音量值范围0x00-0x7F

Structures

bs_br_media_aac_codec_t

typedef struct {
    uint16_t sample_rate;
    uint32_t bit_rate;
    uint8_t channel;
    uint8_t object_type;
    uint8_t rfa;
    uint8_t vbr;
} bs_br_media_aac_codec_t;

成员说明

成员名称 数据类型 描述
sample_rate uint16_t 采样频率,参考bs_br_media_aac_sf_t
bit_rate uint32_t 比特率
channel uint8_t 通道,参考bs_br_media_aac_channel_t
object_type uint8_t 对象类型,参考bs_br_media_aac_object_type_t
rfa uint8_t 预留
vbr uint8_t 支持动态比特率,参考bs_br_media_aac_vbr_t

bs_br_media_sbc_codec_t

typedef struct {
    uint8_t sample_rate;
    uint8_t channel;
    uint8_t block_length;
    uint8_t subband;
    uint8_t alloc_method;
    uint8_t min_bitpool;
    uint8_t max_bitpool;
} bs_br_media_sbc_codec_t;

成员说明

成员名称 数据类型 描述
sample_rate uint8_t 采样频率,参考bs_br_media_sbc_sf_t
channel uint8_t 通道模式,参考bs_br_media_sbc_chmode_t
block_length uint8_t 块长度,参考bs_br_media_sbc_block_t
subband uint8_t 子带个数,参考bs_br_media_sbc_subband_t
alloc_method uint8_t 分配方式,参考bs_br_media_sbc_allocation_t
min_bitpool uint8_t 最小位池,取值2~250
max_bitpool uint8_t 最大位池,取值2~250

bs_br_media_codec_info_t

typedef struct {
    uint8_t codec_type;
    union {
        bs_br_media_sbc_codec_t sbc;
        bs_br_media_aac_codec_t aac;
    } info;
} bs_br_media_codec_info_t;

成员说明

成员名称 数据类型 描述
codec_type uint8_t 音频流编解码类型,参考bs_br_media_codec_type_t
info union 编解码信息联合体,根据codec_type选择SBC或AAC

bs_br_media_element_attr_value_t

typedef struct {
    uint32_t attr_id;
    uint16_t character_set_id;
    uint16_t value_len;
    uint8_t *value;
} bs_br_media_element_attr_value_t;

成员说明

成员名称 数据类型 描述
attr_id uint32_t 属性ID,参考bs_br_media_element_attr_id_t
character_set_id uint16_t 字符集ID
value_len uint16_t 属性名称的长度,0~65535,缺省默认0
value uint8_t * 属性名称

bs_br_media_element_attribute_t

typedef struct {
    uint8_t attr_num;
    bs_br_media_element_attr_value_t *attr_value;
} bs_br_media_element_attribute_t;

成员说明

成员名称 数据类型 描述
attr_num uint8_t TG返回的attribute数量,1~255
attr_value bs_br_media_element_attr_value_t * 属性信息,根据attr_num大小动态分配空间

bs_br_media_stream_callbacks_t

typedef struct {
    bs_br_media_a2dp_conn_state_cbk connect_state_cbk;
    bs_br_media_stream_state_changed_cbk stream_state_cbk;
    bs_br_media_stream_codec_report_cbk stream_codec_cbk;
} bs_br_media_stream_callbacks_t;

成员说明

成员名称 数据类型 描述
connect_state_cbk bs_br_media_a2dp_conn_state_cbk A2DP连接状态上报回调
stream_state_cbk bs_br_media_stream_state_changed_cbk 媒体流状态上报回调
stream_codec_cbk bs_br_media_stream_codec_report_cbk 媒体流编解码上报回调

bs_br_media_callbacks_t

typedef struct {
    bs_br_media_avrcp_conn_state_cbk connect_state_cbk;
    bs_br_media_operate_request_cbk media_opt_req_cbk;
    bs_br_media_info_update_cbk media_update_cbk;
    bs_br_media_volume_operate_cbk media_volume_operate_cbk;
    bs_br_media_volume_info_report_cbk media_volume_report_cbk;
} bs_br_media_callbacks_t;

成员说明

成员名称 数据类型 描述
connect_state_cbk bs_br_media_avrcp_conn_state_cbk AVRCP连接状态上报回调
media_opt_req_cbk bs_br_media_operate_request_cbk 媒体操作请求上报回调
media_update_cbk bs_br_media_info_update_cbk 媒体信息更新上报回调
media_volume_operate_cbk bs_br_media_volume_operate_cbk 音量操作上报回调
media_volume_report_cbk bs_br_media_volume_info_report_cbk 音量通知上报回调