AudioMangerService
AudioMangerService 提供音频管理器服务接口,包括音频设备管理、音频流中断策略、音量控制、语音增强算法(SEA)配置、音频效果(AEF)参数管理、A2DP 编解码属性配置,以及音频输入/输出流的初始化、启停和数据读写等功能。
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
Functions
| 接口名称 | 功能简述 |
|---|---|
| AudioManagerInit | 初始化音频管理器 |
| AudioManagerMakeSessionId | 生成音频会话ID |
| AudioManagerSetDeviceConnectionState | 设置音频设备连接状态 |
| AudioManagerActivateInterrupt | 激活音频中断 |
| AudioManagerDeactivateInterrupt | 去激活音频中断 |
| AudioManagerSetVolume | 设置音频流音量 |
| AudioManagerGetVolume | 获取音频流音量 |
| AudioManagerSetSeaEnable | 设置语音增强算法使能状态 |
| AudioStreamInInit | 初始化音频输入流 |
| AudioStreamInStart | 启动音频输入流 |
| AudioStreamInObtainBuffer | 获取音频输入缓冲区数据 |
| AudioStreamInSetBitRate | 设置音频输入流比特率 |
| AudioStreamInStop | 停止音频输入流 |
| AudioStreamInDeinit | 去初始化音频输入流 |
| AudioStreamOutInit | 初始化音频输出流 |
| AudioStreamOutSetMute | 设置音频输出流静音状态 |
| AudioStreamOutPlay | 启动音频输出流播放 |
| AudioStreamOutStreamWrite | 向音频输出流写入数据 |
| AudioStreamOutStop | 停止音频输出流 |
| AudioStreamOutDeinit | 去初始化音频输出流 |
| AudioManagerSetSeaParam | 设置语音增强算法参数 |
| AudioManagerGetSeaParam | 获取语音增强算法参数 |
| AudioManagerSetAefParam | 设置音频效果参数 |
| AudioManagerGetAefParam | 获取音频效果参数 |
| AudioManagerSetA2dpAttr | 设置A2DP编解码属性 |
| AudioManagerDumpInfo | 打印音频管理器调试信息 |
AudioManagerInit
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 初始化音频管理器实例
- 完成音频管理模块内部资源初始化
- 返回初始化结果状态
前置条件
- 调用时序约束:在使用其他音频管理器接口之前必须先调用本接口完成初始化
- 依赖关系:底层音频服务需已就绪
- 调用上下文约束:需在主线程上下文中调用
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 初始化成功 | 音频管理器初始化成功 |
| false | 初始化失败 | 音频管理器初始化失败 |
参考案例
application/3322/3322_app_standard/thread_pri_init.capplication/ux/watch/audio/sco/ux_audio_sco.c
AudioManagerMakeSessionId
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 生成并返回一个新的音频会话ID
- 会话ID用于标识音频流的中断与策略管理
- 返回值为AudioSession类型的唯一标识
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
返回值
- 返回类型:AudioSession
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AudioSession值 | 新生成的会话ID | 正常生成会话ID |
| AUDIO_SESSION_ID_NONE(0) | 无效会话ID | 会话ID生成失败 |
AudioManagerSetDeviceConnectionState
int32_t AudioManagerSetDeviceConnectionState(AudioDeviceType deviceType, AudioDeviceConnectState connectState)
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置指定音频设备的连接状态
- 通知音频管理器设备的接入或断开事件
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| deviceType | AudioDeviceType | 音频设备类型 | 参考 AudioDeviceType |
| connectState | AudioDeviceConnectState | 设备连接状态 | 参考 AudioDeviceConnectState |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | 设备连接状态设置成功 |
| AUDIO_ERROR | 设置失败 | 设备连接状态设置失败 |
AudioManagerActivateInterrupt
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 激活指定音频流类型的中断请求
- 为指定音频流注册中断监听器
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化,sessionId需通过AudioManagerMakeSessionId获取
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 音频流类型 | 参考 AudioStreamType |
| sessionId | AudioSession | 音频会话ID | 由AudioManagerMakeSessionId返回的值 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 激活成功 | 音频中断激活成功 |
| AUDIO_ERROR | 激活失败 | 音频中断激活失败 |
AudioManagerDeactivateInterrupt
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 去激活已激活的音频中断
- 释放当前音频流的中断占用
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerActivateInterrupt成功返回后调用
- 依赖关系:依赖已激活的音频中断存在
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 去激活成功 | 音频中断去激活成功 |
| AUDIO_ERROR | 去激活失败 | 音频中断去激活失败 |
AudioManagerSetVolume
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置指定音频流类型的音量值
- 音量值应用于对应流类型的音频输出
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 音频流类型 | 参考 AudioStreamType |
| volume | int32_t | 音量值 | 音量有效范围 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | 音量设置成功 |
| AUDIO_ERROR | 设置失败 | 音量设置失败 |
AudioManagerGetVolume
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 获取指定音频流类型的当前音量值
- 返回对应流类型的音量大小
- 返回值为音量实际值
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 音频流类型 | 参考 AudioStreamType |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| >= 0 | 当前音量值 | 获取音量成功 |
| < 0 | 获取失败 | 获取音量失败 |
AudioManagerSetSeaEnable
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置语音增强算法(SEA)的使能状态
- 使能或关闭语音增强算法功能
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutInit成功返回后调用
- 依赖关系:依赖音频输出流已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| enable | bool | SEA使能状态 | - true |
- false |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | SEA使能状态设置成功 |
| AUDIO_ERROR | 设置失败 | SEA使能状态设置失败 |
AudioStreamInInit
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 初始化音频输入流
- 根据提供的采集配置参数创建音频输入流实例
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用,且音频输入流未初始化
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| captureConfig | CapturerInputConfig | 音频采集输入配置 | 参考 CapturerInputConfig 结构体 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 初始化成功 | 音频输入流初始化成功 |
| AUDIO_ERROR | 初始化失败 | 音频输入流已初始化或初始化失败 |
AudioStreamInStart
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 启动音频输入流采集
- 开始音频数据采集流程
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamInInit成功返回后调用
- 依赖关系:依赖音频输入流已初始化
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 启动成功 | 音频输入流启动成功 |
| AUDIO_ERROR | 启动失败 | 音频输入流未初始化或启动失败 |
AudioStreamInObtainBuffer
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 获取音频输入缓冲区中的采集数据
- 将采集到的音频数据拷贝到用户提供的缓冲区中
- 返回操作结果并通过size输出实际获取的数据大小
前置条件
- 调用时序约束:必须在AudioStreamInStart成功返回后调用
- 依赖关系:依赖音频输入流已启动
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| data | uint8_t * | 接收音频数据的缓冲区指针 | 非NULL |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| size | uint32_t * | 输入时为期望获取的数据大小,输出时为实际获取的数据大小 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 获取成功 | 音频缓冲区数据获取成功 |
| AUDIO_ERROR | 获取失败 | 音频输入流未初始化或获取数据失败 |
AudioStreamInSetBitRate
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置音频输入流的比特率
- 动态调整音频输入流的编码比特率参数
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamInInit成功返回后调用
- 依赖关系:依赖音频输入流已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| bitrate | uint32_t | 比特率值 | 有效的比特率值 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | 比特率设置成功 |
| AUDIO_ERROR | 设置失败 | 音频输入流未初始化或设置失败 |
AudioStreamInStop
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 停止音频输入流采集
- 终止当前音频数据采集流程
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamInStart成功返回后调用
- 依赖关系:依赖音频输入流已启动
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 停止成功 | 音频输入流停止成功 |
| AUDIO_ERROR | 停止失败 | 音频输入流未初始化或停止失败 |
AudioStreamInDeinit
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 去初始化音频输入流
- 释放音频输入流实例及相关资源
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamInInit成功返回后调用,建议在AudioStreamInStop之后调用
- 依赖关系:依赖音频输入流已初始化
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 去初始化成功 | 音频输入流资源释放成功 |
AudioStreamOutInit
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 初始化音频输出流
- 根据提供的渲染配置参数创建音频输出流实例
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用,且音频输出流未初始化
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| renderConfig | AudioRendererConfig | 音频渲染输出配置 | 参考 AudioRendererConfig 结构体 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 初始化成功 | 音频输出流初始化成功 |
| AUDIO_ERROR | 初始化失败 | 音频输出流已初始化或初始化失败 |
AudioStreamOutSetMute
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置音频输出流的静音状态
- 使能或取消音频输出流的静音模式
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutInit成功返回后调用
- 依赖关系:依赖音频输出流已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mute | bool | 静音状态 | - true:静音 |
- false:取消静音 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | 静音状态设置成功 |
| AUDIO_ERROR | 设置失败 | 音频输出流未初始化或设置失败 |
AudioStreamOutPlay
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 启动音频输出流播放
- 开始音频数据播放流程
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutInit成功返回后调用
- 依赖关系:依赖音频输出流已初始化
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 播放成功 | 音频输出流启动播放成功 |
| AUDIO_ERROR | 播放失败 | 音频输出流未初始化或启动播放失败 |
AudioStreamOutStreamWrite
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 向音频输出流写入待播放的音频数据
- 将用户提供的音频数据送入输出流进行播放
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutPlay成功返回后调用
- 依赖关系:依赖音频输出流已启动播放
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| data | const uint8_t * | 待写入的音频数据指针 | 非NULL |
| size | uint32_t | 待写入的数据大小(字节) | > 0 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 写入成功 | 音频数据写入成功 |
| AUDIO_ERROR | 写入失败 | 音频输出流未初始化或写入失败 |
AudioStreamOutStop
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 停止音频输出流播放
- 终止当前音频数据播放流程
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutPlay成功返回后调用
- 依赖关系:依赖音频输出流已启动播放
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 停止成功 | 音频输出流停止成功 |
| AUDIO_ERROR | 停止失败 | 音频输出流未初始化或停止失败 |
AudioStreamOutDeinit
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 去初始化音频输出流
- 释放音频输出流实例及相关资源
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioStreamOutInit成功返回后调用,建议在AudioStreamOutStop之后调用
- 依赖关系:依赖音频输出流已初始化
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 去初始化成功 | 音频输出流资源释放成功 |
AudioManagerSetSeaParam
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置语音增强算法(SEA)参数
- 将用户提供的SEA参数数据下发到音频上行链路
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化,SEA功能需已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| seaParam | const uint8_t * | SEA参数数据指针 | 非NULL |
| len | uint16_t | SEA参数数据长度(字节) | > 0 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | SEA参数设置成功 |
| AUDIO_ERROR | 设置失败 | 参数为空或设置失败 |
| AUDIO_NO_MEM | 内存不足 | 缓冲区内存分配失败 |
AudioManagerGetSeaParam
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 获取语音增强算法(SEA)参数
- 从音频上行链路读取当前SEA参数数据
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化,SEA功能需已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| len | uint16_t | 期望获取的参数数据长度(字节) | > 0,不超过SEA缓冲区大小 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| seaParam | uint8_t * | 输出SEA参数数据,由调用方分配缓冲区 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 获取成功 | SEA参数获取成功 |
| AUDIO_ERROR | 获取失败 | 参数为空、长度超限或获取失败 |
| AUDIO_NO_MEM | 内存不足 | 缓冲区内存分配失败 |
AudioManagerSetAefParam
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置指定类型的音频效果(AEF)参数
- 将音频效果参数数据下发到音频下行链路
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| effectType | int32_t | 音频效果类型 | 有效的效果类型标识 |
| aefParam | const uint8_t * | AEF参数数据指针 | 非NULL |
| len | uint16_t | AEF参数数据长度(字节) | > 0 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | AEF参数设置成功 |
| AUDIO_ERROR | 设置失败 | 参数为空或设置失败 |
| AUDIO_NO_MEM | 内存不足 | 缓冲区内存分配失败 |
AudioManagerGetAefParam
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 获取指定类型的音频效果(AEF)参数
- 从音频下行链路读取当前AEF参数数据
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| effectType | int32_t | 音频效果类型 | 有效的效果类型标识 |
| len | uint16_t | AEF参数数据长度(字节) | > 0 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| aefParam | uint8_t * | 输出AEF参数数据,由调用方分配缓冲区 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 获取成功 | AEF参数获取成功 |
| AUDIO_ERROR | 获取失败 | 参数为空或获取失败 |
| AUDIO_NO_MEM | 内存不足 | 缓冲区内存分配失败 |
AudioManagerSetA2dpAttr
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 设置A2DP蓝牙音频编解码属性
- 配置A2DP链路的编解码参数
- 返回操作结果
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化,A2DP设备需已连接
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| data | AudioA2dpCodecAttr * | A2DP编解码属性数据指针 | 非NULL |
| dataLen | uint32_t | 数据长度(字节) | 必须等于sizeof(AudioA2dpCodecAttr) |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| AUDIO_SUCCESS(0) | 设置成功 | A2DP属性设置成功 |
| AUDIO_ERROR | 设置失败 | 数据指针为空、长度不匹配或设置失败 |
参考案例
application/ux/watch/audio/a2dp/ux_audio_a2dp_sink.c
AudioManagerDumpInfo
头文件清单
#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"
功能说明
- 打印音频管理器当前调试信息
- 输出中断信息、流信息、设备信息等调试数据
- 用于音频系统运行状态诊断
前置条件
- 调用时序约束:必须在AudioManagerInit成功返回后调用
- 依赖关系:依赖音频管理器已完成初始化,且编译时启用了AUDIO_MANAGER_DUMP_INFO宏
Enumerations
AudioDeviceType
typedef enum {
UNKNOWN = 0x0,
IN_FLAG = 0x80000000,
OUT_BUILTIN_SPEAKER = 0x1,
OUT_BLUETOOTH_SCO = 0x2,
OUT_NEARLINK_ISO_CALL = 0x4,
OUT_NEARLINK_ISO_MUSIC = 0x8,
OUT_BLUETOOTH_A2DP = 0x10,
OUT_MODEM = 0x20,
OUT_MODEM_HEADSET = 0x40,
OUT_USB = 0x80,
OUT_USB_DONGLE = 0x100,
OUT_NEARLINK_DONGLE = 0x80000,
IN_BUILTIN_MIC = IN_FLAG | 0x200,
IN_BLUETOOTH_SCO = IN_FLAG | 0x400,
IN_NEARLINK_ISO_CALL = IN_FLAG | 0x800,
IN_NEARLINK_ISO_MUSIC = IN_FLAG | 0x1000,
IN_BLUETOOTH_A2DP = IN_FLAG | 0x2000,
IN_MODEM = IN_FLAG | 0x4000,
IN_MODEM_HEADSET = IN_FLAG | 0x8000,
IN_USB = IN_FLAG | 0x10000,
IN_USB_DONGLE = IN_FLAG | 0x20000,
IN_NEARLINK_DONGLE = IN_FLAG | 0x40000,
} AudioDeviceType;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| UNKNOWN | 0x0 | 未知设备 |
| IN_FLAG | 0x80000000 | 输入设备标志位 |
| OUT_BUILTIN_SPEAKER | 0x1 | 内置扬声器 |
| OUT_BLUETOOTH_SCO | 0x2 | 蓝牙SCO输出 |
| OUT_NEARLINK_ISO_CALL | 0x4 | 星闪ISO通话输出 |
| OUT_NEARLINK_ISO_MUSIC | 0x8 | 星闪ISO音乐输出 |
| OUT_BLUETOOTH_A2DP | 0x10 | 蓝牙A2DP输出 |
| OUT_MODEM | 0x20 | Modem输出 |
| OUT_MODEM_HEADSET | 0x40 | Modem耳机输出 |
| OUT_USB | 0x80 | USB输出 |
| OUT_USB_DONGLE | 0x100 | USB Dongle输出 |
| OUT_NEARLINK_DONGLE | 0x80000 | 星闪Dongle输出 |
| IN_BUILTIN_MIC | 0x80000200 | 内置麦克风 |
| IN_BLUETOOTH_SCO | 0x80000400 | 蓝牙SCO输入 |
| IN_NEARLINK_ISO_CALL | 0x80000800 | 星闪ISO通话输入 |
| IN_NEARLINK_ISO_MUSIC | 0x80001000 | 星闪ISO音乐输入 |
| IN_BLUETOOTH_A2DP | 0x80002000 | 蓝牙A2DP输入 |
| IN_MODEM | 0x80004000 | Modem输入 |
| IN_MODEM_HEADSET | 0x80008000 | Modem耳机输入 |
| IN_USB | 0x80010000 | USB输入 |
| IN_USB_DONGLE | 0x80020000 | USB Dongle输入 |
| IN_NEARLINK_DONGLE | 0x80040000 | 星闪Dongle输入 |
AudioDeviceConnectState
typedef enum {
AUDIO_DEVICE_CONNECTED = 0x0u,
AUDIO_DEVICE_DISCONNECTED = 0x1u,
AUDIO_DEVICE_INVALID = 0xFFFFFFFF,
} AudioDeviceConnectState;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_DEVICE_CONNECTED | 0x0 | 设备已连接 |
| AUDIO_DEVICE_DISCONNECTED | 0x1 | 设备已断开 |
| AUDIO_DEVICE_INVALID | 0xFFFFFFFF | 无效状态 |
AudioStreamType
typedef enum {
TYPE_DEFAULT = -1,
TYPE_MEDIA = 0,
TYPE_VOICE_COMMUNICATION = 1,
AUDIO_STREAM_NONE = 0x0u,
AUDIO_STREAM_HEAR_AID = 0x00001000u,
AUDIO_STREAM_ALARM = 0x00010000u,
AUDIO_STREAM_ALARM_SYSTEM = 0x00010001u,
AUDIO_STREAM_ALARM_CLOCK = 0x00010002u,
AUDIO_STREAM_RING = 0x00020000u,
AUDIO_STREAM_VOICE_CALL = 0x00040000u,
AUDIO_STREAM_VOICE_CALL_VOIP = 0x00040001u,
AUDIO_STREAM_VOICE_CALL_BT_SCO = 0x00040002u,
AUDIO_STREAM_VOICE_CALL_VOLTE = 0x00040003u,
AUDIO_STREAM_LIVE_MIC = 0x00040004u,
AUDIO_STREAM_VOICE_CALL_USB = 0x00040005u,
AUDIO_STREAM_VOICE_CALL_NEARLINK = 0x00040006u,
AUDIO_STREAM_VOICE_CALL_VOLTE_SPI = 0x00040008u,
AUDIO_STREAM_VOICE_ASSISTANT = 0x00080004u,
AUDIO_STREAM_TTS = 0x00100000u,
AUDIO_STREAM_NOTIFICATION = 0x00200000u,
AUDIO_STREAM_NOTIFICATION_SYSTEM = 0x00200001u,
AUDIO_STREAM_NOTIFICATION_PROMPT = 0x00200002,
AUDIO_STREAM_MUSIC = 0x00400000u,
AUDIO_STREAM_A2DP_MUSIC = 0x00400001u,
AUDIO_STREAM_USB_MUSIC = 0x00400002u,
AUDIO_STREAM_NEARLINK_MUSIC = 0x00400003u,
AUDIO_STREAM_FITNESS_VIDEO = 0x00800000u,
AUDIO_STREAM_VOICE_RECORD = 0x01000000u,
AUDIO_STREAM_VOICE_RECOGNITION = 0x02000000u,
AUDIO_STREAM_VOICE_PICKUP = 0x02000001u,
AUDIO_STREAM_INVALID = 0x7FFFFFFFu
} AudioStreamType;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| TYPE_DEFAULT | -1 | 默认音频流类型 |
| TYPE_MEDIA | 0 | 媒体类型 |
| TYPE_VOICE_COMMUNICATION | 1 | 语音通信类型 |
| AUDIO_STREAM_NONE | 0x0 | 无音频流 |
| AUDIO_STREAM_HEAR_AID | 0x00001000 | 助听类型 |
| AUDIO_STREAM_ALARM | 0x00010000 | 报警类 |
| AUDIO_STREAM_ALARM_SYSTEM | 0x00010001 | 设备报警 |
| AUDIO_STREAM_ALARM_CLOCK | 0x00010002 | 闹钟 |
| AUDIO_STREAM_RING | 0x00020000 | 来电铃声 |
| AUDIO_STREAM_VOICE_CALL | 0x00040000 | 语音通话 |
| AUDIO_STREAM_VOICE_CALL_VOIP | 0x00040001 | VoIP语音通话 |
| AUDIO_STREAM_VOICE_CALL_BT_SCO | 0x00040002 | 蓝牙通话 |
| AUDIO_STREAM_VOICE_CALL_VOLTE | 0x00040003 | 4G VoLTE通话 |
| AUDIO_STREAM_LIVE_MIC | 0x00040004 | 直播麦 |
| AUDIO_STREAM_VOICE_CALL_USB | 0x00040005 | USB语音通话 |
| AUDIO_STREAM_VOICE_CALL_NEARLINK | 0x00040006 | 星闪语音通话 |
| AUDIO_STREAM_VOICE_CALL_VOLTE_SPI | 0x00040008 | VoLTE SPI通话 |
| AUDIO_STREAM_VOICE_ASSISTANT | 0x00080004 | 语音助手 |
| AUDIO_STREAM_TTS | 0x00100000 | 语音合成 |
| AUDIO_STREAM_NOTIFICATION | 0x00200000 | 提示音 |
| AUDIO_STREAM_NOTIFICATION_SYSTEM | 0x00200001 | 设备提示音 |
| AUDIO_STREAM_NOTIFICATION_PROMPT | 0x00200002 | 运动健康提示音 |
| AUDIO_STREAM_MUSIC | 0x00400000 | 媒体音 |
| AUDIO_STREAM_A2DP_MUSIC | 0x00400001 | 蓝牙输入媒体音 |
| AUDIO_STREAM_USB_MUSIC | 0x00400002 | USB音乐 |
| AUDIO_STREAM_NEARLINK_MUSIC | 0x00400003 | 星闪音乐 |
| AUDIO_STREAM_FITNESS_VIDEO | 0x00800000 | 健身视频指导提示音 |
| AUDIO_STREAM_VOICE_RECORD | 0x01000000 | 语音采集录制 |
| AUDIO_STREAM_VOICE_RECOGNITION | 0x02000000 | 语音识别 |
| AUDIO_STREAM_VOICE_PICKUP | 0x02000001 | 拾音通路 |
| AUDIO_STREAM_INVALID | 0x7FFFFFFF | 无效 |
AudioLinkDirection
typedef enum {
AUDIO_DOWN_LINK,
AUDIO_UP_LINK,
AUDIO_UP_DOWN_LINK,
AUDIO_LINK_NONE = 0xFFFFFFFF,
} AudioLinkDirection;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_DOWN_LINK | 0 | 下行链路 |
| AUDIO_UP_LINK | 1 | 上行链路 |
| AUDIO_UP_DOWN_LINK | 2 | 上下行链路 |
| AUDIO_LINK_NONE | 0xFFFFFFFF | 无效链路方向 |
AudioCodecFormat
typedef enum {
AUDIO_DEFAULT = 0,
PCM = 1,
AAC_LC = 2,
AAC_HE_V1 = 3,
AAC_HE_V2 = 4,
AAC_LD = 5,
AAC_ELD = 6,
G711A = 7,
G711U = 8,
G726 = 9,
OPUS = 10,
FLAC = 11,
VORBIS = 12,
APE = 13,
MP3 = 14,
mSBC = 15,
SILK = 16,
SBC = 17,
L2HC = 18,
AMR_WB = 19,
LHDC = 20,
LDAC = 21,
L2HC_VOICE = 22,
AUDIO_FORMAT_MAX,
FORMAT_INVALID = 0xFFFFFFFF,
} AudioCodecFormat;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_DEFAULT | 0 | 默认格式 |
| PCM | 1 | PCM格式 |
| AAC_LC | 2 | AAC-LC格式 |
| AAC_HE_V1 | 3 | AAC-HE V1格式 |
| AAC_HE_V2 | 4 | AAC-HE V2格式 |
| AAC_LD | 5 | AAC-LD格式 |
| AAC_ELD | 6 | AAC-ELD格式 |
| G711A | 7 | G711A格式 |
| G711U | 8 | G711U格式 |
| G726 | 9 | G726格式 |
| OPUS | 10 | OPUS格式 |
| FLAC | 11 | FLAC格式 |
| VORBIS | 12 | VORBIS格式 |
| APE | 13 | APE格式 |
| MP3 | 14 | MP3格式 |
| mSBC | 15 | mSBC格式 |
| SILK | 16 | SILK格式 |
| SBC | 17 | SBC格式 |
| L2HC | 18 | L2HC格式 |
| AMR_WB | 19 | AMR-WB格式 |
| LHDC | 20 | LHDC格式 |
| LDAC | 21 | LDAC格式 |
| L2HC_VOICE | 22 | L2HC语音格式 |
| AUDIO_FORMAT_MAX | 23 | 格式最大值 |
| FORMAT_INVALID | 0xFFFFFFFF | 无效格式 |
AudioBitWidth
typedef enum {
BIT_WIDTH_8 = 8,
BIT_WIDTH_16 = 16,
BIT_WIDTH_24 = 24,
BIT_WIDTH_32 = 32,
BIT_WIDTH_32_FLOAT = 33,
BIT_WIDTH_BUTT = 0xFFFFFFFFu,
} AudioBitWidth;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BIT_WIDTH_8 | 8 | 8位位宽 |
| BIT_WIDTH_16 | 16 | 16位位宽 |
| BIT_WIDTH_24 | 24 | 24位位宽 |
| BIT_WIDTH_32 | 32 | 32位位宽 |
| BIT_WIDTH_32_FLOAT | 33 | 32位浮点位宽 |
| BIT_WIDTH_BUTT | 0xFFFFFFFF | 无效位宽 |
CapturerMicType
typedef enum {
CAPTURE_MIC_AMIC_0 = 0x1,
CAPTURE_MIC_AMIC_1 = 0x2,
CAPTURE_MIC_AMIC_2 = 0x4,
CAPTURE_MIC_AMIC_3 = 0x8,
CAPTURE_MIC_DMIC_0 = 0x10,
CAPTURE_MIC_DMIC_1 = 0x20,
CAPTURE_MIC_DMIC_2 = 0x40,
CAPTURE_MIC_DMIC_3 = 0x80,
CAPTURE_MIC_TYPE_MAX,
CAPTURE_MIC_TYPE_BUTT = 0x7FFFFFFF,
} CapturerMicType;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| CAPTURE_MIC_AMIC_0 | 0x1 | 模拟麦克风0 |
| CAPTURE_MIC_AMIC_1 | 0x2 | 模拟麦克风1 |
| CAPTURE_MIC_AMIC_2 | 0x4 | 模拟麦克风2 |
| CAPTURE_MIC_AMIC_3 | 0x8 | 模拟麦克风3 |
| CAPTURE_MIC_DMIC_0 | 0x10 | 数字麦克风0 |
| CAPTURE_MIC_DMIC_1 | 0x20 | 数字麦克风1 |
| CAPTURE_MIC_DMIC_2 | 0x40 | 数字麦克风2 |
| CAPTURE_MIC_DMIC_3 | 0x80 | 数字麦克风3 |
| CAPTURE_MIC_TYPE_MAX | 0x81 | 麦克风类型最大值 |
| CAPTURE_MIC_TYPE_BUTT | 0x7FFFFFFF | 无效麦克风类型 |
AudioChannelMode
typedef enum {
AUDIO_CHANNEL_MODE_NONE = 0,
AUDIO_CHANNEL_MODE_FRONT_LEFT = 0x1u,
AUDIO_CHANNEL_MODE_FRONT_RIGHT = 0x2u,
AUDIO_CHANNEL_MODE_MONO = 0x4u,
AUDIO_CHANNEL_MODE_STEREO = 0x8u,
AUDIO_CHANNEL_MODE_INVALID = 0xFFFFFFFFu,
} AudioChannelMode;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_CHANNEL_MODE_NONE | 0 | 无通道 |
| AUDIO_CHANNEL_MODE_FRONT_LEFT | 0x1 | 左前通道 |
| AUDIO_CHANNEL_MODE_FRONT_RIGHT | 0x2 | 右前通道 |
| AUDIO_CHANNEL_MODE_MONO | 0x4 | 单声道 |
| AUDIO_CHANNEL_MODE_STEREO | 0x8 | 立体声 |
| AUDIO_CHANNEL_MODE_INVALID | 0xFFFFFFFF | 无效通道模式 |
AudioStreamFlag
typedef enum {
AUDIO_STREAM_FLAG_NONE = 0x0,
AUDIO_STREAM_FLAG_LOW_LATENCY = 0x1,
AUDIO_STREAM_FLAG_SECURE = 0x2,
AUDIO_STREAM_FLAG_INVALID = 0xFFFFFFFF,
} AudioStreamFlag;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_STREAM_FLAG_NONE | 0x0 | 无标志 |
| AUDIO_STREAM_FLAG_LOW_LATENCY | 0x1 | 低延迟标志 |
| AUDIO_STREAM_FLAG_SECURE | 0x2 | 安全标志 |
| AUDIO_STREAM_FLAG_INVALID | 0xFFFFFFFF | 无效标志 |
Structures
CapturerInputConfig
typedef struct {
AudioCodecFormat audioFormat;
AudioStreamType streamType;
uint32_t sampleRate;
uint32_t sessionID;
uint32_t channelCount;
AudioLinkDirection linkDir;
bool disableSEA;
uint32_t micType;
AudioBitWidth bitWidth;
bool isAlwaysWake;
uint32_t frameLength;
} CapturerInputConfig;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| audioFormat | AudioCodecFormat | 音频编解码格式 |
| streamType | AudioStreamType | 音频流类型 |
| sampleRate | uint32_t | 采样率 |
| sessionID | uint32_t | 会话ID |
| channelCount | uint32_t | 通道数 |
| linkDir | AudioLinkDirection | 链路方向 |
| disableSEA | bool | 是否关闭语音增强算法 |
| micType | uint32_t | 麦克风类型 |
| bitWidth | AudioBitWidth | 位宽 |
| isAlwaysWake | bool | 是否常唤醒 |
| frameLength | uint32_t | 帧长度 |
AudioRendererConfig
typedef struct {
AudioCodecFormat audioFormat;
AudioStreamType streamType;
uint32_t sampleRate;
uint32_t sessionID;
uint32_t channelCount;
uint32_t deviceId;
uint32_t connectedId;
AudioLinkDirection linkDir;
uint16_t sampleFmt;
AudioBitWidth bitWidth;
bool isSync;
uint32_t frameLength;
} AudioRendererConfig;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| audioFormat | AudioCodecFormat | 音频编解码格式 |
| streamType | AudioStreamType | 音频流类型 |
| sampleRate | uint32_t | 采样率 |
| sessionID | uint32_t | 会话ID |
| channelCount | uint32_t | 通道数 |
| deviceId | uint32_t | 设备ID |
| connectedId | uint32_t | 已连接设备ID |
| linkDir | AudioLinkDirection | 链路方向 |
| sampleFmt | uint16_t | 采样格式 |
| bitWidth | AudioBitWidth | 位宽 |
| isSync | bool | 是否同步模式 |
| frameLength | uint32_t | 帧长度 |
AudioA2dpCodecAttr
typedef struct {
uint16_t sampleRate;
uint32_t bitRate;
uint8_t codecType;
uint8_t payload;
uint8_t channel;
uint8_t channelMode;
uint8_t blockLength;
uint8_t subband;
uint8_t allocMethod;
uint8_t minBitpool;
uint8_t maxBitpool;
uint8_t objectType;
uint8_t rfa;
uint8_t vbr;
} AudioA2dpCodecAttr;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| sampleRate | uint16_t | 采样频率 |
| bitRate | uint32_t | 比特率 |
| codecType | uint8_t | 编解码类型 |
| payload | uint8_t | 载荷类型 |
| channel | uint8_t | 通道数 |
| channelMode | uint8_t | 通道模式 |
| blockLength | uint8_t | 块长度 |
| subband | uint8_t | 子带个数 |
| allocMethod | uint8_t | 分配方法 |
| minBitpool | uint8_t | 最小位池,取值2~250 |
| maxBitpool | uint8_t | 最大位池,取值2~250 |
| objectType | uint8_t | 对象类型 |
| rfa | uint8_t | 预留 |
| vbr | uint8_t | 是否支持动态比特率 |