audiomanager
Class Summary
InterruptListener
音频中断监听器,用于接收音频中断事件回调
- 构造:无
-
成员函数:
接口名称 功能简述 OnInterrupt 音频中断回调,通知应用中断类型与提示 -
使用包含头文件:
#include "audio_manager.h" - 声明头文件:
middleware/services/media/foundation/audiomanager/interfaces/kits/audiomanager/cpp/audio_manager.h - 公有运算符:无
- 继承关系:无
- 嵌套类型:无
- 模板形参:无
AudioManager
音频管理器,提供音量控制、设备管理、音频焦点等全局音频管理能力
- 构造:无
-
成员函数:
接口名称 功能简述 GetInstance 获取AudioManager单例引用 Initialize 初始化音频管理器 MakeSessionId 创建音频会话ID SetVolume 设置指定流类型的音量等级 GetVolume 获取指定流类型的音量等级 GetMinVolume 获取指定流类型的最小音量等级 GetMaxVolume 获取指定流类型的最大音量等级 Mute 静音指定流类型 UnMute 取消静音指定流类型 IsMute 查询指定流类型是否被静音 SetMasterMute 设置全局音频流静音状态 IsMasterMute 查询全局音频流是否被静音 SetMicrophoneMute 设置麦克风静音状态 IsMicrophoneMute 查询麦克风是否被静音 SetRingerMode 设置铃声模式 GetRingerMode 获取当前铃声模式 GetDevices 获取音频输入/输出设备信息 IsSupportOffload 查询是否支持音频Offload模式 SetDeviceConnectionState 设置设备连接状态 ActivateAudioInterrupt 激活音频中断请求 DeactivateAudioInterrupt 去激活音频中断 DumpInfo 导出音频管理器调试信息 SetParam 设置指定链路方向的音频参数 GetParam 获取指定链路方向的音频参数 Invoke 通过InvokeId执行音频扩展操作 -
使用包含头文件:
#include "audio_manager.h" - 声明头文件:
middleware/services/media/foundation/audiomanager/interfaces/kits/audiomanager/cpp/audio_manager.h - 公有运算符:无
- 继承关系:无
- 嵌套类型:无
- 模板形参:无
Functions
InterruptListener
OnInterrupt
virtual void OnInterrupt(int32_t type, int32_t hint) = 0
功能说明
- 当应用程序的音频被其他应用中断时回调通知
- 提供中断类型与中断提示信息,指导应用执行暂停、恢复或停止操作
- 多应用并发播放时音频焦点冲突处理
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| type | int32_t | 中断类型 | AudioInterruptType:INTERRUPT_TYPE_BEGIN(1)、INTERRUPT_TYPE_END(2) |
| hint | int32_t | 中断提示 | AudioInterruptHintType:INTERRUPT_HINT_PAUSE(0)、INTERRUPT_HINT_RESUME(1)、INTERRUPT_HINT_STOP(2) |
AudioManager
GetInstance
static AudioManager& GetInstance()
功能说明
- 获取AudioManager单例引用
- 提供全局唯一的音频管理器实例访问入口
- 所有音频管理操作基于此接口返回的实例进行
前置条件
- 调用时序约束:首次使用AudioManager前调用
- 依赖关系:依赖AudioManager类已编译可用
返回值
- 返回类型:
AudioManager&
返回单例引用
| 返回值 | 触发场景 |
|---|---|
| AudioManager& | 始终返回全局单例引用 |
Initialize
bool Initialize()
功能说明
- 初始化音频管理器
- 初始化音频管理器内部资源与状态,为后续音频操作做准备
- 在使用其他音频管理接口前调用
前置条件
- 调用时序约束:必须在GetInstance()获取实例后调用
- 依赖关系:依赖AudioServiceInit成功
返回值
- 返回类型:
bool
返回初始化结果
| 返回值 | 触发场景 |
|---|---|
| true | 初始化成功 |
| false | 初始化失败 |
MakeSessionId
AudioSession MakeSessionId()
功能说明
- 创建音频会话ID
- 为音频流分配唯一会话标识,用于音频焦点管理与中断分组
- 创建音频流前需获取会话ID
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖AudioServiceAcquireAudioSessionId可用
返回值
- 返回类型:
AudioSession
返回会话ID
| 返回值 | 触发场景 |
|---|---|
| 非0值 | 成功分配会话ID |
| AUDIO_SESSION_ID_NONE(0) | 分配失败 |
SetVolume
bool SetVolume(AudioStreamType streamType, int32_t volume)
功能说明
- 设置指定流类型的音量等级
- 按流类型独立控制音量,支持不同音频场景的音量管理
- 调节媒体音量、通话音量、铃声音量等
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 流类型 | AudioStreamType枚举值 |
| volume | int32_t | 音量等级 | GetMinVolume返回值 ~ GetMaxVolume返回值 |
返回值
- 返回类型:
bool
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 音量设置成功 |
| false | 音量设置失败 |
GetVolume
int32_t GetVolume(AudioStreamType streamType)
功能说明
- 获取指定流类型的当前音量等级
- 查询指定流类型的音量等级,配合SetVolume使用
- 音量UI展示、音量调节前获取当前值
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
int32_t
返回音量等级
| 返回值 | 触发场景 |
|---|---|
| 音量等级值 | 成功获取音量等级 |
| AUDIO_ERROR(0xFFFFFFFF) | 获取失败 |
GetMinVolume
int32_t GetMinVolume(AudioStreamType streamType)
功能说明
- 获取指定流类型的最小音量等级
- 提供音量等级下限,用于音量设置时的范围校验
- 音量调节UI范围设定、音量合法性校验
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
int32_t
返回最小音量等级
| 返回值 | 触发场景 |
|---|---|
| 最小音量等级值 | 成功获取最小音量等级 |
| AUDIO_ERROR(0xFFFFFFFF) | 获取失败 |
GetMaxVolume
int32_t GetMaxVolume(AudioStreamType streamType)
功能说明
- 获取指定流类型的最大音量等级
- 提供音量等级上限,用于音量设置时的范围校验
- 音量调节UI范围设定、音量合法性校验
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
int32_t
返回最大音量等级
| 返回值 | 触发场景 |
|---|---|
| 最大音量等级值 | 成功获取最大音量等级 |
| AUDIO_ERROR(0xFFFFFFFF) | 获取失败 |
Mute
bool Mute(AudioStreamType streamType)
功能说明
- 静音指定流类型
- 按流类型独立控制静音,不影响其他流类型
- 静音媒体流、通话流等特定音频流
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 待静音的流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
bool
返回静音结果
| 返回值 | 触发场景 |
|---|---|
| true | 静音操作成功 |
| false | 静音操作失败 |
UnMute
bool UnMute(AudioStreamType streamType)
功能说明
- 取消静音指定流类型
- 恢复指定流类型的音频输出
- 取消媒体流、通话流等特定音频流的静音状态
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 待取消静音的流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
bool
返回取消静音结果
| 返回值 | 触发场景 |
|---|---|
| true | 取消静音操作成功 |
| false | 取消静音操作失败 |
IsMute
bool IsMute(AudioStreamType streamType)
功能说明
- 查询指定流类型是否被静音
- 提供静音状态查询能力,配合Mute/UnMute使用
- 静音状态UI展示、静音操作结果确认
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| streamType | AudioStreamType | 流类型 | AudioStreamType枚举值 |
返回值
- 返回类型:
bool
返回静音状态
| 返回值 | 触发场景 |
|---|---|
| true | 指定流类型处于静音状态 |
| false | 指定流类型未静音 |
SetMasterMute
bool SetMasterMute(bool isMute)
功能说明
- 设置全局音频流静音状态
- 统一控制所有音频流的静音与恢复,影响全局音频输出
- 全局静音开关、勿扰模式设置
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| isMute | bool | 是否静音全局音频流 | true:全局静音;false:取消全局静音 |
返回值
- 返回类型:
bool
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 全局静音设置成功 |
| false | 设置失败 |
IsMasterMute
bool IsMasterMute()
功能说明
- 查询全局音频流是否被静音
- 提供全局静音状态查询能力,配合SetMasterMute使用
- 全局静音状态UI展示
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
返回值
- 返回类型:
bool
返回全局静音状态
| 返回值 | 触发场景 |
|---|---|
| true | 全局处于静音状态 |
| false | 全局未静音 |
SetMicrophoneMute
bool SetMicrophoneMute(bool isMute)
功能说明
- 设置麦克风静音状态
- 控制麦克风输入的静音与恢复
- 通话中静音麦克风、录音静音控制
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| isMute | bool | 是否静音麦克风 | true:静音麦克风;false:取消静音麦克风 |
返回值
- 返回类型:
bool
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 麦克风静音设置成功 |
| false | 设置失败 |
IsMicrophoneMute
bool IsMicrophoneMute()
功能说明
- 查询麦克风是否被静音
- 提供麦克风静音状态查询能力,配合SetMicrophoneMute使用
- 麦克风静音状态UI展示
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
返回值
- 返回类型:
bool
返回麦克风静音状态
| 返回值 | 触发场景 |
|---|---|
| true | 麦克风处于静音状态 |
| false | 麦克风未静音 |
SetRingerMode
bool SetRingerMode(AudioRingMode mode)
功能说明
- 设置铃声模式
- 控制设备响铃行为,支持正常、振动、静音三种模式
- 用户切换响铃/振动/静音模式
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mode | AudioRingMode | 铃声模式 | AudioRingMode:RINGER_MODE_NORMAL(0)、RINGER_MODE_VIBRATE(1)、RINGER_MODE_SILENT(2) |
返回值
- 返回类型:
bool
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| true | 铃声模式设置成功 |
| false | 设置失败 |
GetRingerMode
int32_t GetRingerMode()
功能说明
- 获取当前铃声模式
- 查询设备当前铃声模式,配合SetRingerMode使用
- 铃声模式UI展示、模式切换后状态确认
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
返回值
- 返回类型:
int32_t
返回铃声模式
| 返回值 | 触发场景 |
|---|---|
| RINGER_MODE_NORMAL(0) | 设备处于正常响铃模式 |
| RINGER_MODE_VIBRATE(1) | 设备处于振动模式 |
| RINGER_MODE_SILENT(2) | 设备处于静音模式 |
GetDevices
std::vector<AudioDeviceInfo> GetDevices(DeviceFlag flag)
功能说明
- 获取音频输入/输出设备信息
- 查询当前系统中可用的音频设备列表,支持按输入/输出分类
- 音频设备枚举、设备选择UI展示
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| flag | DeviceFlag | 设备类型标志 | DeviceFlag:OUTPUT_DEVICES_FLAG(0x1)、INPUT_DEVICES_FLAG(0x2) |
返回值
- 返回类型:
std::vector<AudioDeviceInfo>
返回设备信息列表
| 返回值 | 触发场景 |
|---|---|
| 非空vector | 成功获取设备信息列表 |
| 空vector | 无设备或获取失败 |
IsSupportOffload
bool IsSupportOffload(AudioOffloadInfo &info)
功能说明
- 查询是否支持指定音频Offload模式
- 根据音频Offload信息判断硬件是否支持Offload解码播放
- 音频播放路径选择,决定是否使用Offload模式
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| info | AudioOffloadInfo & | 音频Offload信息,入参引用 | AudioOffloadInfo结构体 |
返回值
- 返回类型:
bool
返回Offload支持结果
| 返回值 | 触发场景 |
|---|---|
| true | 硬件支持该Offload配置 |
| false | 硬件不支持 |
SetDeviceConnectionState
int32_t SetDeviceConnectionState(AudioDeviceType device, AudioDeviceConnectState state)
功能说明
- 设置设备连接状态
- 通知音频系统外部设备的连接或断开事件
- 蓝牙耳机连接/断开、USB音频设备插入/拔出
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| device | AudioDeviceType | 音频设备类型 | AudioDeviceType枚举值 |
| state | AudioDeviceConnectState | 设备连接状态 | AudioDeviceConnectState:AUDIO_DEVICE_CONNECTED(0x0)、AUDIO_DEVICE_DISCONNECTED(0x1) |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 设备连接状态设置成功 |
| Other | 其他错误码,参考audio_errors |
ActivateAudioInterrupt
int32_t ActivateAudioInterrupt(AudioInterrupt &interrupt)
功能说明
- 激活音频中断请求
- 在播放音频前向其他应用发送中断请求,使其暂停或降低音量,避免音频冲突
- 音频播放开始前申请音频焦点
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化;interrupt.interruptListener不可为空
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| interrupt | AudioInterrupt & | 音频中断数据结构,入参引用,包含中断信息与中断监听器 | AudioInterrupt结构体 |
返回值
- 返回类型:
int32_t
返回激活结果
| 返回值 | 触发场景 |
|---|---|
| INTERRUPT_GRANTED(0) | 中断请求被授予 |
| INTERRUPT_DELAYED(1) | 中断请求被延迟 |
| INTERRUPT_FAILED(-1) | 中断请求失败 |
| AUDIO_INVALID_PARAMS(0x80000001) | interruptListener为空 |
DeactivateAudioInterrupt
int32_t DeactivateAudioInterrupt(AudioInterrupt &interrupt)
功能说明
- 去激活音频中断
- 当应用不再需要接收中断消息时,去激活该应用的音频中断
- 音频播放结束后释放音频焦点
前置条件
- 调用时序约束:必须在Initialize()成功后调用;之前已通过ActivateAudioInterrupt激活中断
- 依赖关系:依赖音频服务已初始化;interrupt.interruptListener不可为空
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| interrupt | AudioInterrupt & | 音频中断数据结构,入参引用 | AudioInterrupt结构体 |
返回值
- 返回类型:
int32_t
返回去激活结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 音频中断去激活成功 |
| AUDIO_INVALID_PARAMS(0x80000001) | interruptListener为空 |
| Other | 其他错误码,参考audio_errors |
DumpInfo
int32_t DumpInfo(AudioManagerDebugInfo &audioManagerInfo)
功能说明
- 导出音频管理器调试信息
- 获取当前音频系统中断焦点、流信息与设备信息的调试快照
- 音频问题排查、系统状态监控
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| audioManagerInfo | AudioManagerDebugInfo & | 音频管理器调试信息,出参引用,由被调用方写入 | AudioManagerDebugInfo结构体 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| audioManagerInfo | AudioManagerDebugInfo & | 出参引用,由被调用方写入调试信息 |
返回值
- 返回类型:
int32_t
返回导出结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 调试信息导出成功 |
| Other | 其他错误码,参考audio_errors |
SetParam
int32_t SetParam(AudioLinkDirection direction, const char *param, uint32_t len)
功能说明
- 设置指定链路方向的音频参数
- 按链路方向配置音频参数
- 音频链路参数配置
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | AudioLinkDirection | 链路方向 | AudioLinkDirection:AUDIO_DOWN_LINK(0)、AUDIO_UP_LINK(1)、AUDIO_UP_DOWN_LINK(2) |
| param | const char * | 入参只读指针,参数数据缓冲区 | 非nullptr |
| len | uint32_t | 参数数据长度 | 大于0 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 音频参数设置成功 |
| Other | 其他错误码,参考audio_errors |
GetParam
int32_t GetParam(AudioLinkDirection direction, char *param, uint32_t len)
功能说明
- 获取指定链路方向的音频参数
- 按链路方向查询音频参数
- 音频链路参数读取
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | AudioLinkDirection | 链路方向 | AudioLinkDirection:AUDIO_DOWN_LINK(0)、AUDIO_UP_LINK(1)、AUDIO_UP_DOWN_LINK(2) |
| param | char * | 入参指针,参数数据缓冲区,由被调用方写入 | 非nullptr,空间不小于len |
| len | uint32_t | 参数数据长度 | 大于0 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| param | char * | 出参指针,由被调用方写入参数数据 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 音频参数获取成功 |
| Other | 其他错误码,参考audio_errors |
Invoke
int32_t Invoke(AudioInvokeId audioInvokeId, void *param, uint32_t *paramlength)
功能说明
- 通过InvokeId执行音频扩展操作
- 提供扩展命令通道,支持HAID、ANC、TWS、LiveMic等音频扩展功能
- 音频硬件抽象层扩展命令下发
前置条件
- 调用时序约束:必须在Initialize()成功后调用
- 依赖关系:依赖音频服务已初始化
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| audioInvokeId | AudioInvokeId | 扩展命令ID | AudioInvokeId枚举值 |
| param | void * | 入参指针,命令参数数据缓冲区,部分命令也作为出参 | 非nullptr |
| paramlength | uint32_t * | 入参指针,参数长度,部分命令也作为出参返回实际长度 | 非nullptr |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| param | void * | 出参指针,部分命令由被调用方写入返回数据 |
| paramlength | uint32_t * | 出参指针,部分命令由被调用方写入实际参数长度 |
返回值
- 返回类型:
int32_t
返回执行结果
| 返回值 | 触发场景 |
|---|---|
| AUDIO_SUCCESS(0x0) | 扩展操作执行成功 |
| Other | 其他错误码,参考audio_errors |
Type definitions
使用说明:在MakeSessionId接口中作为返回类型使用,标识音频会话
Enumerations
enum {
AUDIO_SUCCESS = ERRCODE_SUCC,
AUDIO_ERROR = ERRCODE_FAIL,
AUDIO_INVALID_PARAMS = ERRCODE_INVALID_PARAM,
AUDIO_INVALID_OPERATION = ERRCODE_MEDIA_AUDIO_INVALID_OPERATION,
AUDIO_PERMISSION_DENIED = ERRCODE_MEDIA_PERMISSION_DENIED,
AUDIO_NO_INIT = ERRCODE_MEDIA_AUDIO_NO_INIT,
AUDIO_NO_MEM = ERRCODE_MEDIA_AUDIO_NO_MEM,
AUDIO_RETRY_READ = ERRCODE_MEDIA_AUDIO_RETRY_READ,
AUDIO_DEAD_OBJECT = ERRCODE_MEDIA_AUDIO_DEAD_OBJECT,
AUDIO_BAD_STATE = ERRCODE_MEDIA_AUDIO_BAD_STATE,
AUDIO_NOT_FOUND_ACTIVE_STREAM = ERRCODE_MEDIA_AUDIO_NOT_FOUND_ACTIVE_STREAM,
AUDIO_NOT_SUPPORT = ERRCODE_NOT_SUPPORT,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_SUCCESS | 0x0 | 操作成功 |
| AUDIO_ERROR | 0xFFFFFFFF | 操作失败 |
| AUDIO_INVALID_PARAMS | 0x80000001 | 无效参数 |
| AUDIO_INVALID_OPERATION | 0x8000A90F | 无效操作 |
| AUDIO_PERMISSION_DENIED | 0x8000A903 | 权限拒绝 |
| AUDIO_NO_INIT | 0x8000A910 | 未初始化 |
| AUDIO_NO_MEM | 0x8000A911 | 内存不足 |
| AUDIO_RETRY_READ | 0x8000A912 | 重试读取 |
| AUDIO_DEAD_OBJECT | 0x8000A913 | 对象已销毁 |
| AUDIO_BAD_STATE | 0x8000A914 | 状态异常 |
| AUDIO_NOT_FOUND_ACTIVE_STREAM | 0x8000A915 | 未找到活跃流 |
| AUDIO_NOT_SUPPORT | 0x80000002 | 不支持 |
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 | 无效 |
typedef enum {
RINGER_MODE_NORMAL = 0,
RINGER_MODE_VIBRATE,
RINGER_MODE_SILENT,
RINGER_MODE_INVALID = 0xFFFFFFFF,
} AudioRingMode;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| RINGER_MODE_NORMAL | 0 | 恢复振铃模式为之前设置;若之前为声音模式则设备发声 |
| RINGER_MODE_VIBRATE | 1 | 设备静默并振动 |
| RINGER_MODE_SILENT | 2 | 设备静默且不振动,覆盖振动模式 |
| RINGER_MODE_INVALID | 0xFFFFFFFF | 无效值 |
typedef enum {
OUTPUT_DEVICES_FLAG = 0x1u,
INPUT_DEVICES_FLAG = 0x2u,
DEVICES_FLAG_INVALID = 0xFFFFFFFF,
} DeviceFlag;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| OUTPUT_DEVICES_FLAG | 0x1 | 输出设备标志 |
| INPUT_DEVICES_FLAG | 0x2 | 输入设备标志 |
| DEVICES_FLAG_INVALID | 0xFFFFFFFF | 无效标志 |
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输入 |
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 | 无效状态 |
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 | 无效方向 |
typedef enum {
AUDIO_INVOKE_HAID_CREATE,
AUDIO_INVOKE_HAID_DESTROY,
AUDIO_INVOKE_HAID_SET_ENABLE,
AUDIO_INVOKE_HAID_GET_ENABLE,
AUDIO_INVOKE_HAID_SET_EVENT_CALL_BACK,
AUDIO_INVOKE_HAID_SET_VOLUME,
AUDIO_INVOKE_HAID_GET_VOLUME,
AUDIO_INVOKE_HAID_SET_HARDWARE_CONFIG,
AUDIO_INVOKE_HAID_GET_HARDWARE_CONFIG,
AUDIO_INVOKE_HAID_START_CALIBRATION,
AUDIO_INVOKE_HAID_STOP_CALIBRATION,
AUDIO_INVOKE_HAID_SET_TEST_CONFIG,
AUDIO_INVOKE_HAID_SET_IOCTL,
AUDIO_INVOKE_HAID_SET_CONFIG,
AUDIO_INVOKE_HAID_GET_CONFIG,
AUDIO_INVOKE_HAID_SET_ALL_CONFIG,
AUDIO_INVOKE_HAID_GET_ALL_CONFIG,
AUDIO_INVOKE_HAID_TONE_PLAY,
AUDIO_INVOKE_HAID_TONE_STOP,
AUDIO_INVOKE_HAID_SET_SCENE,
AUDIO_INVOKE_HAID_GET_SCENE,
AUDIO_INVOKE_HAID_SET_SPK_CALI_COEF,
AUDIO_INVOKE_HAID_SET_MIC_VOLUME,
AUDIO_INVOKE_HAID_GET_ENV_NOISE,
AUDIO_INVOKE_TWS_SET_MODE,
AUDIO_INVOKE_TWS_SET_ROLE,
AUDIO_INVOKE_TWS_SET_CHANNEL,
AUDIO_INVOKE_TWS_SET_PRODUCT_FORM,
AUDIO_INVOKE_ANC_INIT,
AUDIO_INVOKE_ANC_DEINIT,
AUDIO_INVOKE_ANC_OPEN,
AUDIO_INVOKE_ANC_GET_ATTR,
AUDIO_INVOKE_ANC_CLOSE,
AUDIO_INVOKE_ANC_SET_PARAM,
AUDIO_INVOKE_ANC_GET_PARAM,
AUDIO_INVOKE_LIVEMIC_SET_MIXMODE,
AUDIO_INVOKE_LIVEMIC_GET_MIXMODE,
AUDIO_INVOKE_LIVEMIC_SET_MICMODE,
AUDIO_INVOKE_LIVEMIC_GET_MICMODE,
AUDIO_INVOKE_RECORD_DB_VOLUME,
AUDIO_INVOKE_READ_DB_VOLUME,
AUDIO_INVOKE_SET_A2DP_CODEC_ATTR,
AUDIO_INVOKE_SET_CONFIG_PARAM,
AUDIO_INVOKE_SET_GLOBAL_MUTE,
AUDIO_INVOKE_SET_VOLUME_MATRIX,
AUDIO_INVOKE_GET_VOLUME_MATRIX,
AUDIO_INVOKE_SET_ENCODE_PARAM_EXT,
} AudioInvokeId;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| AUDIO_INVOKE_HAID_CREATE | 0 | HAID创建 |
| AUDIO_INVOKE_HAID_DESTROY | 1 | HAID销毁 |
| AUDIO_INVOKE_HAID_SET_ENABLE | 2 | HAID设置使能 |
| AUDIO_INVOKE_HAID_GET_ENABLE | 3 | HAID获取使能 |
| AUDIO_INVOKE_HAID_SET_EVENT_CALL_BACK | 4 | HAID设置事件回调 |
| AUDIO_INVOKE_HAID_SET_VOLUME | 5 | HAID设置音量 |
| AUDIO_INVOKE_HAID_GET_VOLUME | 6 | HAID获取音量 |
| AUDIO_INVOKE_HAID_SET_HARDWARE_CONFIG | 7 | HAID设置硬件配置 |
| AUDIO_INVOKE_HAID_GET_HARDWARE_CONFIG | 8 | HAID获取硬件配置 |
| AUDIO_INVOKE_HAID_START_CALIBRATION | 9 | HAID启动校准 |
| AUDIO_INVOKE_HAID_STOP_CALIBRATION | 10 | HAID停止校准 |
| AUDIO_INVOKE_HAID_SET_TEST_CONFIG | 11 | HAID设置测试配置 |
| AUDIO_INVOKE_HAID_SET_IOCTL | 12 | HAID设置IOCTL |
| AUDIO_INVOKE_HAID_SET_CONFIG | 13 | HAID设置配置 |
| AUDIO_INVOKE_HAID_GET_CONFIG | 14 | HAID获取配置 |
| AUDIO_INVOKE_HAID_SET_ALL_CONFIG | 15 | HAID设置全部配置 |
| AUDIO_INVOKE_HAID_GET_ALL_CONFIG | 16 | HAID获取全部配置 |
| AUDIO_INVOKE_HAID_TONE_PLAY | 17 | HAID提示音播放 |
| AUDIO_INVOKE_HAID_TONE_STOP | 18 | HAID提示音停止 |
| AUDIO_INVOKE_HAID_SET_SCENE | 19 | HAID设置场景 |
| AUDIO_INVOKE_HAID_GET_SCENE | 20 | HAID获取场景 |
| AUDIO_INVOKE_HAID_SET_SPK_CALI_COEF | 21 | HAID设置扬声器校准系数 |
| AUDIO_INVOKE_HAID_SET_MIC_VOLUME | 22 | HAID设置麦克风音量 |
| AUDIO_INVOKE_HAID_GET_ENV_NOISE | 23 | HAID获取环境噪声 |
| AUDIO_INVOKE_TWS_SET_MODE | 24 | TWS设置模式 |
| AUDIO_INVOKE_TWS_SET_ROLE | 25 | TWS设置角色 |
| AUDIO_INVOKE_TWS_SET_CHANNEL | 26 | TWS设置通道 |
| AUDIO_INVOKE_TWS_SET_PRODUCT_FORM | 27 | TWS设置产品形态 |
| AUDIO_INVOKE_ANC_INIT | 28 | ANC初始化 |
| AUDIO_INVOKE_ANC_DEINIT | 29 | ANC去初始化 |
| AUDIO_INVOKE_ANC_OPEN | 30 | ANC打开 |
| AUDIO_INVOKE_ANC_GET_ATTR | 31 | ANC获取属性 |
| AUDIO_INVOKE_ANC_CLOSE | 32 | ANC关闭 |
| AUDIO_INVOKE_ANC_SET_PARAM | 33 | ANC设置参数 |
| AUDIO_INVOKE_ANC_GET_PARAM | 34 | ANC获取参数 |
| AUDIO_INVOKE_LIVEMIC_SET_MIXMODE | 35 | LiveMic设置混音模式 |
| AUDIO_INVOKE_LIVEMIC_GET_MIXMODE | 36 | LiveMic获取混音模式 |
| AUDIO_INVOKE_LIVEMIC_SET_MICMODE | 37 | LiveMic设置麦克风模式 |
| AUDIO_INVOKE_LIVEMIC_GET_MICMODE | 38 | LiveMic获取麦克风模式 |
| AUDIO_INVOKE_RECORD_DB_VOLUME | 39 | 录制dB音量 |
| AUDIO_INVOKE_READ_DB_VOLUME | 40 | 读取dB音量 |
| AUDIO_INVOKE_SET_A2DP_CODEC_ATTR | 41 | 设置A2DP编解码属性 |
| AUDIO_INVOKE_SET_CONFIG_PARAM | 42 | 设置配置参数 |
| AUDIO_INVOKE_SET_GLOBAL_MUTE | 43 | 设置全局静音 |
| AUDIO_INVOKE_SET_VOLUME_MATRIX | 44 | 设置音量矩阵 |
| AUDIO_INVOKE_GET_VOLUME_MATRIX | 45 | 获取音量矩阵 |
| AUDIO_INVOKE_SET_ENCODE_PARAM_EXT | 46 | 设置扩展编码参数 |
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| INTERRUPT_TYPE_BEGIN | 1 | 中断开始 |
| INTERRUPT_TYPE_END | 2 | 中断结束 |
enum AudioInterruptHintType {
INTERRUPT_HINT_PAUSE = 0,
INTERRUPT_HINT_RESUME,
INTERRUPT_HINT_STOP
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| INTERRUPT_HINT_PAUSE | 0 | 提示应用暂停音频播放 |
| INTERRUPT_HINT_RESUME | 1 | 提示应用恢复音频播放 |
| INTERRUPT_HINT_STOP | 2 | 提示应用停止音频播放 |
Structures
struct AudioInterrupt {
AudioStreamType streamType;
AudioSession sessionID;
std::shared_ptr<InterruptListener> interruptListener;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| streamType | AudioStreamType | 音频流类型 |
| sessionID | AudioSession | 音频会话ID |
| interruptListener | std::shared_ptr |
中断监听器,共享所有权语义 |
typedef struct {
/* 所有输入焦点类型 */
std::vector<InterruptDebugInfo> inputInterruptInfo;
/* 所有输出焦点类型 */
std::vector<InterruptDebugInfo> outputInterruptInfo;
/* 所有流的信息 */
std::vector<StreamDebugInfo> allstreamInfo;
/* 所有设备的信息 */
std::vector<DeviceDebugInfo> allDeviceInfo;
} AudioManagerDebugInfo;
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| inputInterruptInfo | std::vector |
所有输入焦点类型信息 |
| outputInterruptInfo | std::vector |
所有输出焦点类型信息 |
| allstreamInfo | std::vector |
所有流的信息 |
| allDeviceInfo | std::vector |
所有设备的信息 |
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| flag | DeviceFlag | 设备类型标志 |
| device | AudioDeviceType | 音频设备类型 |
| name | const char * | 设备名称 |
typedef struct {
AudioStreamType streamType;
uint32_t samplerate;
AudioCodecFormat format;
uint32_t channel;
uint32_t bitwidth;
} AudioOffloadInfo;
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| streamType | AudioStreamType | 音频流类型 |
| samplerate | uint32_t | 采样率 |
| format | AudioCodecFormat | 编解码格式 |
| channel | uint32_t | 通道数 |
| bitwidth | uint32_t | 位宽 |