跳转至

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

bool AudioManagerInit(void)

头文件清单

#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.c
  • application/ux/watch/audio/sco/ux_audio_sco.c

AudioManagerMakeSessionId

AudioSession AudioManagerMakeSessionId(void)

头文件清单

#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

int32_t AudioManagerActivateInterrupt(AudioStreamType streamType, AudioSession sessionId)

头文件清单

#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

int32_t AudioManagerDeactivateInterrupt(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 去激活已激活的音频中断
  • 释放当前音频流的中断占用
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioManagerActivateInterrupt成功返回后调用
  • 依赖关系:依赖已激活的音频中断存在

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 去激活成功 音频中断去激活成功
AUDIO_ERROR 去激活失败 音频中断去激活失败

AudioManagerSetVolume

int32_t AudioManagerSetVolume(AudioStreamType streamType, int32_t volume)

头文件清单

#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

int32_t AudioManagerGetVolume(AudioStreamType streamType)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 获取指定音频流类型的当前音量值
  • 返回对应流类型的音量大小
  • 返回值为音量实际值

前置条件

  • 调用时序约束:必须在AudioManagerInit成功返回后调用
  • 依赖关系:依赖音频管理器已完成初始化

入参

名称 参数类型 详细说明 约束取值范围
streamType AudioStreamType 音频流类型 参考 AudioStreamType

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
>= 0 当前音量值 获取音量成功
< 0 获取失败 获取音量失败

AudioManagerSetSeaEnable

int32_t AudioManagerSetSeaEnable(bool enable)

头文件清单

#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

int32_t AudioStreamInInit(CapturerInputConfig captureConfig)

头文件清单

#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

int32_t AudioStreamInStart(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 启动音频输入流采集
  • 开始音频数据采集流程
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamInInit成功返回后调用
  • 依赖关系:依赖音频输入流已初始化

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 启动成功 音频输入流启动成功
AUDIO_ERROR 启动失败 音频输入流未初始化或启动失败

AudioStreamInObtainBuffer

int32_t AudioStreamInObtainBuffer(uint8_t *data, uint32_t *size)

头文件清单

#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

int32_t AudioStreamInSetBitRate(uint32_t bitrate)

头文件清单

#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

int32_t AudioStreamInStop(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 停止音频输入流采集
  • 终止当前音频数据采集流程
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamInStart成功返回后调用
  • 依赖关系:依赖音频输入流已启动

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 停止成功 音频输入流停止成功
AUDIO_ERROR 停止失败 音频输入流未初始化或停止失败

AudioStreamInDeinit

int32_t AudioStreamInDeinit(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 去初始化音频输入流
  • 释放音频输入流实例及相关资源
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamInInit成功返回后调用,建议在AudioStreamInStop之后调用
  • 依赖关系:依赖音频输入流已初始化

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 去初始化成功 音频输入流资源释放成功

AudioStreamOutInit

int32_t AudioStreamOutInit(AudioRendererConfig renderConfig)

头文件清单

#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

int32_t AudioStreamOutSetMute(bool mute)

头文件清单

#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

int32_t AudioStreamOutPlay(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 启动音频输出流播放
  • 开始音频数据播放流程
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamOutInit成功返回后调用
  • 依赖关系:依赖音频输出流已初始化

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 播放成功 音频输出流启动播放成功
AUDIO_ERROR 播放失败 音频输出流未初始化或启动播放失败

AudioStreamOutStreamWrite

int32_t AudioStreamOutStreamWrite(const uint8_t *data, uint32_t size)

头文件清单

#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

int32_t AudioStreamOutStop(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 停止音频输出流播放
  • 终止当前音频数据播放流程
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamOutPlay成功返回后调用
  • 依赖关系:依赖音频输出流已启动播放

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 停止成功 音频输出流停止成功
AUDIO_ERROR 停止失败 音频输出流未初始化或停止失败

AudioStreamOutDeinit

int32_t AudioStreamOutDeinit(void)

头文件清单

#include "middleware/services/media/foundation/service/audio_manger_service/include/audio_manager_service.h"

功能说明

  • 去初始化音频输出流
  • 释放音频输出流实例及相关资源
  • 返回操作结果

前置条件

  • 调用时序约束:必须在AudioStreamOutInit成功返回后调用,建议在AudioStreamOutStop之后调用
  • 依赖关系:依赖音频输出流已初始化

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
AUDIO_SUCCESS(0) 去初始化成功 音频输出流资源释放成功

AudioManagerSetSeaParam

int32_t AudioManagerSetSeaParam(const uint8_t *seaParam, uint16_t len)

头文件清单

#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

int32_t AudioManagerGetSeaParam(uint8_t *seaParam, uint16_t len)

头文件清单

#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

int32_t AudioManagerSetAefParam(int32_t effectType, const uint8_t *aefParam, uint16_t len)

头文件清单

#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

int32_t AudioManagerGetAefParam(int32_t effectType, uint8_t *aefParam, uint16_t len)

头文件清单

#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

int32_t AudioManagerSetA2dpAttr(AudioA2dpCodecAttr *data, uint32_t dataLen)

头文件清单

#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

void AudioManagerDumpInfo(void)

头文件清单

#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 是否支持动态比特率

Macros

AUDIO_SESSION_ID_NONE

#define AUDIO_SESSION_ID_NONE    0