跳转至

audiomanager

Class Summary

InterruptListener

音频中断监听器,用于接收音频中断事件回调

  • 构造:无
  • 成员函数

    接口名称 功能简述
    OnInterrupt 音频中断回调,通知应用中断类型与提示
  • 使用包含头文件#include "audio_manager.h"

  • 声明头文件middleware/services/media/foundation/audiomanager/interfaces/kits/audiomanager/cpp/audio_manager.h
  • 公有运算符:无
  • 继承关系:无
  • 嵌套类型:无
  • 模板形参:无

AudioManager

音频管理器,提供音量控制、设备管理、音频焦点等全局音频管理能力

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

AudioSession

typedef uint32_t AudioSession;

使用说明:在MakeSessionId接口中作为返回类型使用,标识音频会话

Enumerations

audio_errors

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 不支持

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 无效

AudioRingMode

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 无效值

DeviceFlag

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 无效标志

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 无效状态

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 无效方向

AudioInvokeId

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 设置扩展编码参数

AudioInterruptType

enum AudioInterruptType {
    INTERRUPT_TYPE_BEGIN = 1,
    INTERRUPT_TYPE_END
};
枚举成员 取值 描述
INTERRUPT_TYPE_BEGIN 1 中断开始
INTERRUPT_TYPE_END 2 中断结束

AudioInterruptHintType

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

AudioInterrupt

struct AudioInterrupt {
    AudioStreamType streamType;
    AudioSession sessionID;
    std::shared_ptr<InterruptListener> interruptListener;
};

成员说明

成员名称 数据类型 描述
streamType AudioStreamType 音频流类型
sessionID AudioSession 音频会话ID
interruptListener std::shared_ptr 中断监听器,共享所有权语义

AudioManagerDebugInfo

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 所有设备的信息

AudioDeviceInfo

typedef struct {
    DeviceFlag      flag;
    AudioDeviceType device;
    const char      *name;
} AudioDeviceInfo;

成员说明

成员名称 数据类型 描述
flag DeviceFlag 设备类型标志
device AudioDeviceType 音频设备类型
name const char * 设备名称

AudioOffloadInfo

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 位宽