本文介绍 AOQ Client SDK macOS 版的 Objective-C 接口、回调和数据类型,帮助您在 macOS 应用中接入实时音视频和数据消息能力。
AoqClientEngine 类对外提供接口,通过 AoqEngineDelegate 协议统一回调异步事件。
接口目录
引擎生命周期
接口 | 简介 |
|---|---|
| 创建引擎实例(单例模式) |
| 销毁引擎实例 |
| 获取 SDK 版本号 |
| 连接 Relay 服务器 |
| 断开服务器连接 |
音频设备管理
接口 | 简介 |
|---|---|
| 打开音频采集设备(麦克风) |
| 关闭音频采集设备 |
| 静音或取消静音音频采集 |
| 开始音频渲染(播放远端音频) |
| 停止音频渲染 |
| 暂停音频渲染(支持淡出) |
| 恢复音频渲染(支持淡入) |
| 打断本轮音频通话 |
| 开启或关闭本地采集音量提示 |
音频编码配置
接口 | 简介 |
|---|---|
| 设置音频编码参数 |
| 设置音频解码参数 |
视频设备管理
接口 | 简介 |
|---|---|
| 打开视频采集设备(摄像头) |
| 关闭视频采集设备 |
| 设置或移除本地视频渲染窗口 |
| 设置或移除远端视频渲染窗口 |
视频编码与外部输入
接口 | 简介 |
|---|---|
| 设置视频编码参数 |
| 设置视频解码参数 |
| 推送外部采集视频帧 |
| 推送外部已编码视频帧 |
媒体流发送控制
接口 | 简介 |
|---|---|
| 控制本地媒体流的发送开关 |
音频文件播放
接口 | 简介 |
|---|---|
| 开始推流播放本地音频文件 |
| 停止音频文件播放 |
| 暂停音频文件播放 |
| 恢复音频文件播放 |
| 获取音频文件总时长 |
| 获取音频文件当前播放位置 |
| 设置音频文件播放位置(seek) |
| 设置音频文件音量 |
| 获取音频文件当前音量 |
外部音频流
接口 | 简介 |
|---|---|
| 新增一条外部音频流 |
| 输入外部音频 PCM 数据 |
| 设置外部音频流音量 |
| 获取外部音频流音量 |
| 清空外部音频流缓存 |
| 移除外部音频流 |
实时消息
接口 | 简介 |
|---|---|
| 发送实时数据消息 |
音频帧回调
接口 | 简介 |
|---|---|
| 设置音频帧数据回调监听 |
| 开启或关闭指定位置的音频帧回调 |
视频帧回调
接口 | 简介 |
|---|---|
| 设置视频帧数据回调监听 |
| 开启或关闭指定位置的视频帧回调 |
AoqEngineDelegate 回调
回调 | 简介 |
|---|---|
| 引擎错误回调 |
| 引擎警告回调 |
| 连接状态变化回调 |
| 引擎统计信息回调 |
| 音频设备操作状态变化回调 |
| 音频输出路由变化回调 |
| 音频文件播放状态回调 |
| 本地采集音量提示回调 |
| 视频设备操作状态变化回调 |
| 收到实时数据消息回调 |
接口详情
引擎生命周期
createEngine:delegate:
创建引擎实例。SDK 内部以全局单例方式持有引擎,重复调用会返回已创建的实例。
参数 | 类型 | 说明 |
|---|---|---|
|
| 引擎创建配置,详见 |
|
| 引擎事件回调委托,详见 |
destroy
销毁引擎实例。销毁后需重新调用 createEngine:delegate: 方可继续使用。
getVersion
获取 SDK 的版本号。
connect:
连接 Relay 服务器。业务 AppServer 应根据所用协议获取临时 AOQ 连接参数并下发给客户端,具体操作请参见Token 鉴权。
参数 | 类型 | 说明 |
|---|---|---|
|
| 连接鉴权配置,详见 |
disconnect
断开服务器连接。
音频设备管理
startAudioCapture:
打开音频采集设备(麦克风)。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频采集配置,详见 |
stopAudioCapture
关闭音频采集设备。
muteAudioCapture:
静音或取消静音音频采集。
参数 | 类型 | 说明 |
|---|---|---|
|
|
|
startAudioPlayer:
开始音频渲染,播放远端音频。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频播放配置,详见 |
stopAudioPlayer
停止音频渲染。
pauseAudioPlayer:
暂停音频渲染,支持淡出。
参数 | 类型 | 说明 |
|---|---|---|
|
| 淡出时长,单位毫秒;0 表示立即暂停 |
resumeAudioPlayer:
恢复音频渲染,支持淡入。
参数 | 类型 | 说明 |
|---|---|---|
|
| 淡入时长,单位毫秒;0 表示立即恢复 |
interruptAudioPlayer:fadeMs:
打断本轮音频通话,停止当前正在播放的音频内容。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音轨类型,详见 |
|
| 淡出时长,单位毫秒;0 表示立即打断 |
enableLocalAudioVolumeIndication:
开启或关闭本地采集音量提示。开启后按 config.interval 周期触发 onLocalAudioVolumeIndication: 回调;config.interval <= 0 时关闭回调。需在 startAudioCapture: 之后调用才有音量数据。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音量提示配置,详见 |
音频编码配置
setAudioEncoderConfig:
设置音频编码参数。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频编解码配置,详见 |
setAudioDecoderConfig:
设置音频解码参数。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频编解码配置,详见 |
视频设备管理
startVideoCapture:
打开视频采集设备(摄像头)。配置 isExternal=YES 时不打开摄像头,由 pushExternalVideoCapturedFrame:frame: 喂帧。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频采集配置,详见 |
stopVideoCapture
关闭视频采集设备。
setLocalView:canvas:
设置或移除本地视频渲染窗口。canvas 传 nil 或 canvas.view 为 nil 表示解绑。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频轨道,传 |
|
| 渲染画布,详见 |
setRemoteView:canvas:
设置或移除远端视频渲染窗口。canvas 传 nil 或 canvas.view 为 nil 表示解绑。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频轨道,传 |
|
| 渲染画布,详见 |
视频编码与外部输入
setVideoEncoderConfig:
设置视频编码参数,按 config.trackType 路由。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频编解码配置,详见 |
setVideoDecoderConfig:
设置视频解码参数(订阅侧 codec 提议,需在 connect: 之前调用),按 config.trackType 路由。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频编解码配置,详见 |
pushExternalVideoCapturedFrame:frame:
推送外部视频帧。需先调用 startVideoCapture: 且配置 isExternal=YES,未启动外部视频采集或格式不支持时返回 AoqECParamInvalid。
参数 | 类型 | 说明 |
|---|---|---|
|
| 路由目标,传 |
|
| 外部视频帧数据,详见 |
AoqECVideoExternalBufferFull(210)表示缓冲区满;<0 表示其他错误。
pushExternalVideoEncodedFrame:frame:
推送外部已编码视频帧,bypass 编码器直推。需先调用 setVideoEncoderConfig: 且配置 isExternal=YES,当前仅支持 JPEG。
参数 | 类型 | 说明 |
|---|---|---|
|
| 路由目标,传 |
|
| 外部已编码帧数据,详见 |
媒体流发送控制
enableSendMediaStream:enable:
控制本地媒体流的发送开关。建议初始化后先关闭发送,待 onConnectionStatusChange: 回调 AoqConnectionStatusConnected 后再开启。
参数 | 类型 | 说明 |
|---|---|---|
|
| 路由目标,支持 |
|
|
|
音频文件播放
startAudioFile:config:
开始推流播放本地音频文件。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID,业务层需保证唯一性 |
|
| 音频文件混音配置,详见 |
stopAudioFile:
停止音频文件播放。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
pauseAudioFile:
暂停音频文件播放。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
resumeAudioFile:
恢复音频文件播放。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
getAudioFileDuration:
获取音频文件总时长。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
getAudioFileCurrentPosition:
获取音频文件当前播放位置。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
setAudioFilePositionMillis:positionMillis:
设置音频文件播放位置(seek)。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
|
| 播放位置,单位毫秒 |
setAudioFileVolume:type:volume:
设置音频文件音量。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
|
| 音频流方向,详见 |
|
| 音量值,范围 [0, 100] |
getAudioFileVolume:type:
获取音频文件当前音量。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频文件 ID |
|
| 音频流方向,详见 |
外部音频流
addAudioExternalStream:config:
新增一条外部音频流。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID,业务层需保证唯一性 |
|
| 外部音频流配置,详见 |
pushAudioExternalStreamData:data:
输入外部音频 PCM 数据。返回 AoqECAudioExternalBufferFull(110)时表示 SDK 缓存已满,建议等待约 20ms 后重新送当前数据帧。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID |
|
| 外部音频裸数据,详见 |
AoqECAudioExternalBufferFull 返回。setAudioExternalStreamVolume:type:volume:
设置外部音频流音量。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID |
|
| 外部音频流类型,详见 |
|
| 音量值,范围 [0, 100] |
getAudioExternalStreamVolume:type:
获取外部音频流音量。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID |
|
| 外部音频流类型,详见 |
clearAudioExternalStreamBuffer:fadeoutMs:
清空外部音频流缓存。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID |
|
| 淡出时长;-1 使用 SDK 内部默认淡出,0 表示全部清空无淡出,>0 保留指定毫秒淡出 |
removeAudioExternalStream:
移除外部音频流。
参数 | 类型 | 说明 |
|---|---|---|
|
| 外部音频流 ID |
实时消息
sendDataMsg:
发送实时数据消息。
参数 | 类型 | 说明 |
|---|---|---|
|
| 消息内容,详见 |
音频帧回调
setAudioFrameObserver:
设置音频帧数据回调委托,传 nil 停止回调。设置后需调用 enableAudioFrameObserver:audioSource:config: 开启对应数据源的回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频帧回调委托,详见 |
enableAudioFrameObserver:audioSource:config:
开启或关闭指定位置的音频帧回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 是否允许数据回调 |
|
| 音频裸数据源类型,详见 |
|
| 回调参数设置,详见 |
视频帧回调
setVideoFrameObserver:
设置视频帧数据回调委托,传 nil 停止回调。设置后需调用 enableVideoFrameObserver:videoSource:config: 开启对应数据源的回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频帧回调委托,详见 |
enableVideoFrameObserver:videoSource:config:
开启或关闭指定位置的视频帧回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 是否启用某位置数据回调 |
|
| 视频帧回调数据源(管线位置),详见 |
|
| 回调参数设置,详见 |
回调
AoqEngineDelegate
AoqEngineDelegate 是 SDK 所有异步事件通知的统一出口,在 createEngine:delegate: 时传入。所有回调方法均为 @required。连接状态流转:Disconnected → Connecting → Connected/Failed → Disconnected。
onError:message:
引擎错误回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 错误码,详见 |
|
| 错误描述 |
onWarning:message:
引擎警告回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 警告码,详见 |
|
| 警告描述 |
onConnectionStatusChange:
引擎连接状态变化回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 连接状态,详见 |
onStats:
引擎统计信息回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 统计数据,详见 |
onAudioDeviceStateChanged:
音频设备采集 / 播放操作状态变化回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音频设备状态,详见 |
onAudioDeviceRouteChanged:
音频输出路由变化回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 路由类型,取值详见 |
onAudioFileState:
音频文件播放状态回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 文件播放状态,详见 |
onLocalAudioVolumeIndication:
本地采集音量提示回调,需调用 enableLocalAudioVolumeIndication: 开启。
参数 | 类型 | 说明 |
|---|---|---|
|
| 本地音量信息,详见 |
onVideoDeviceStateChanged:
视频设备采集操作状态变化回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频设备状态,详见 |
onDataMsg:
收到实时数据消息回调。
参数 | 类型 | 说明 |
|---|---|---|
|
| 数据消息,详见 |
AoqAudioFrameDelegate
音频帧数据回调协议,所有方法均为 @optional。请不要在回调中做任何耗时操作,否则可能导致声音异常。
onCapturedAudioFrame:
采集裸数据回调。通过 enableAudioFrameObserver: 设置 audioSource = AoqAudioSourceCaptured 开启,支持设置采样率、声道数,支持读写模式。
参数 | 类型 | 说明 |
|---|---|---|
|
| 采集音频裸数据,详见 |
onProcessCapturedAudioFrame:
3A 后数据回调。通过 enableAudioFrameObserver: 设置 audioSource = AoqAudioSourceProcessCaptured 开启,支持设置采样率、声道数,支持读写模式。
参数 | 类型 | 说明 |
|---|---|---|
|
| 3A 处理后音频裸数据,详见 |
onPublishAudioFrame:frame:
推流数据回调。通过 enableAudioFrameObserver: 设置 audioSource = AoqAudioSourcePublish 开启,支持设置采样率、声道数,仅支持只读模式。
参数 | 类型 | 说明 |
|---|---|---|
|
| 音轨类型,详见 |
|
| 推流音频裸数据,详见 |
onPlaybackAudioFrame:
播放数据回调。通过 enableAudioFrameObserver: 设置 audioSource = AoqAudioSourcePlayback 开启,支持设置采样率、声道数,支持读写模式。
参数 | 类型 | 说明 |
|---|---|---|
|
| 播放音频裸数据,详见 |
AoqVideoFrameDelegate
视频帧数据回调协议,所有方法均为 @optional。请不要在回调中做任何耗时操作,否则可能导致画面卡顿。回调返回 YES 表示数据已修改、需写回 SDK(写回仅对 I420 / CVPixelBuffer 生效);返回 NO 表示只读。frame 中的数据仅在回调期间有效,异步使用需自行拷贝。
onCapturedVideoFrame:
本地采集后裸数据回调(前处理前)。通过 enableVideoFrameObserver: 设置 videoSource = AoqVideoSourceCaptured 开启。
参数 | 类型 | 说明 |
|---|---|---|
|
| 采集视频帧数据,详见 |
YES 数据已修改、需写回 SDK;NO 只读。
onPreEncodeVideoFrame:frame:
本地编码前裸数据回调(前处理后)。通过 enableVideoFrameObserver: 设置 videoSource = AoqVideoSourcePreEncode 开启。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频轨道类型,详见 |
|
| 编码前视频帧数据,详见 |
YES 数据已修改、需写回 SDK;NO 只读。
onRemoteVideoFrame:frame:
远端解码后、渲染前裸数据回调。通过 enableVideoFrameObserver: 设置 videoSource = AoqVideoSourceRemote 开启。
参数 | 类型 | 说明 |
|---|---|---|
|
| 视频轨道类型,详见 |
|
| 远端视频帧数据,详见 |
YES 数据已修改、需写回 SDK;NO 只读。
数据类型与枚举
通用类型
AoqCreateConfig
引擎创建配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| SDK 工作目录 |
|
|
| 是否开启音频原始数据 dump(调试用) |
|
|
| 扩展参数 |
AoqConnectConfig
连接 Relay 服务器配置。
字段 | 类型 | 说明 |
|---|---|---|
|
| 连接鉴权 Token |
|
| 会话 ID |
|
| 服务器证书指纹 |
|
| Relay 接入点列表 |
|
| 工作空间哈希 ID |
|
| 本端推流 track 属性数组 |
|
| 本端拉流 track 属性数组 |
AoqRelayEndpoint
Relay 接入点。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 路径序号 |
|
|
| 服务端地址(域名或 IP) |
|
|
| 服务端端口 |
AoqTrackParam
track 属性。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| track 类型 |
|
|
| 流式与非流式模式,仅对音频下行生效 |
AoqDataMsg
实时消息数据结构。
字段 | 类型 | 说明 |
|---|---|---|
|
| 消息内容,指向调用方持有的内存 |
统计信息类型
AoqStats
引擎统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 音频推流统计数组 |
|
| 视频推流统计数组 |
|
| 数据消息推流统计数组 |
|
| 音频拉流统计数组 |
|
| 视频拉流统计数组 |
|
| 数据消息拉流统计数组 |
|
| 网络统计信息 |
AoqNetworkStats
网络统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 发送码率(bps) |
|
| 累计发送字节数 |
|
| 接收码率(bps) |
|
| 累计接收字节数 |
|
| 丢包率(0-100) |
|
| 往返延迟(ms) |
AoqAudioPublishStats
音频推流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
|
| 推流编码音量 |
AoqVideoPublishStats
视频推流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
|
| 编码帧率 |
AoqDataMsgPublishStats
数据消息推流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
AoqAudioSubscribeStats
音频拉流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
|
| 播放音量 |
AoqVideoSubscribeStats
视频拉流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
|
| 解码帧率 |
|
| 渲染帧率 |
AoqDataMsgSubscribeStats
数据消息拉流统计信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 轨道类型 |
|
| 码率(bps) |
|
| 累计字节数 |
枚举类型
AoqErrorCode
错误码枚举。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 成功 |
| 1 | 参数非法 |
| 2 | 状态非法 |
| 3 | 接口不支持 |
| 100 | 音频通用错误 |
| 110 | 外部音频缓冲区满 |
| 120 | 音频设备通用错误 |
| 121 | 录音权限未获取 |
| 122 | 录音设备被占用 |
| 123 | 后台启动录音 |
| 124 | 录音启动失败 |
| 125 | 播放设备被占用 |
| 126 | 后台启动播放 |
| 127 | 播放启动失败 |
| 200 | 视频通用错误 |
| 210 | 外部视频缓冲区满 |
| 211 | 未启用外部视频采集 |
| 212 | 未启用外部视频编码 |
| 220 | 视频设备通用错误 |
| 221 | 摄像头打开失败 |
| 222 | 摄像头权限未获取 |
| 223 | 摄像头被占用 |
| 224 | 摄像头运行错误 |
| 230 | 视频编解码通用错误 |
| 231 | 编码器初始化失败 |
| 240 | 视频渲染通用错误 |
| 241 | 渲染视图创建失败 |
| 242 | 渲染绘制错误 |
AoqWarningCode
警告码枚举。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 无警告 |
| 100 | 音频通用警告 |
| 101 | 音频啸叫检测 |
| 120 | 音频设备通用警告 |
| 121 | 麦克风枚举错误 |
| 122 | 麦克风启动超时 |
| 123 | 录音错误 |
| 124 | 扬声器枚举错误 |
| 125 | 扬声器启动超时 |
| 126 | 播放错误 |
| 200 | 视频通用警告 |
| 201 | 摄像头枚举错误 |
| 202 | 视频编码器已切换 |
| 203 | 视频渲染降级 |
AoqTrackType
轨道类型。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 音频轨道 |
| 1 | 视频轨道 |
| 2 | 数据消息轨道 |
AoqEncoderType
编码器类型。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 未知格式 |
| 1 | 音频 PCM |
| 2 | 音频 Opus |
| 3 | 视频 H.264 |
| 4 | 视频 JPEG |
| 5 | 数据文本 |
AoqTrackMode
流式与非流式模式,仅对音频下行生效。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 分段:数据按语义片段(如一句话)打包送达 |
| 1 | 流式:数据持续、连续地送达 |
AoqConnectionStatus
引擎连接状态。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 未连接 |
| 1 | 连接中 |
| 2 | 已连接 |
| 3 | 连接失败 |
音频类型
AoqAudioCaptureConfig
音频采集配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 是否外部采集 |
|
|
| 音频采集通道数,支持 1/2 |
AoqAudioPlaybackConfig
音频播放配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 是否外部播放 |
|
|
| 音频播放通道数,支持 1/2 |
AoqAudioCodecConfig
音频编解码配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 轨道类型 |
|
|
| 编码格式 |
|
|
| 采样率(Hz) |
|
|
| 声道数 |
|
|
| 比特率(bps) |
AoqAudioDeviceState
音频设备状态。
字段 | 类型 | 说明 |
|---|---|---|
|
| 状态码 |
|
| 错误码( |
AoqAudioDeviceStateCode
音频设备状态码。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 无状态 |
| 1 | 采集正在启动 |
| 2 | 采集已启动 |
| 3 | 采集正在停止 |
| 4 | 采集已停止 |
| 5 | 采集失败 |
| 6 | 播放正在启动 |
| 7 | 播放已启动 |
| 8 | 播放正在停止 |
| 9 | 播放已停止 |
| 10 | 播放失败 |
AoqAudioDeviceRouteType
音频设备路由类型。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 默认 |
| 1 | 耳机 |
| 2 | 听筒 |
| 3 | 无麦耳机 |
| 4 | 内置扬声器 |
| 5 | USB |
| 6 | 蓝牙 |
| 7 | 蓝牙 A2DP |
AoqAudioFileMixConfig
音频文件推流播放配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
| - | 文件名(含路径),必填 |
|
|
| 循环次数,-1 表示无限循环 |
|
|
| 起始播放位置(ms) |
|
|
| 推流音量,范围 [0, 100] |
|
|
| 播放音量,范围 [0, 100] |
AoqAudioFileState
音频文件状态。
字段 | 类型 | 说明 |
|---|---|---|
|
| 文件 ID |
|
| 状态码 |
|
| 错误码 |
AoqAudioFileStateCode
音频文件状态码。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 无状态 |
| 1 | 开始播放 |
| 2 | 停止播放 |
| 3 | 暂停播放 |
| 4 | 恢复播放 |
| 5 | 播放完毕 |
| 6 | 正在缓冲 |
| 7 | 缓冲结束 |
| 8 | 播放失败 |
AoqAudioFileErrorCode
音频文件播放错误码。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 没有错误 |
| 1 | 打开文件失败 |
| 2 | 解码文件失败 |
AoqAudioExternalStreamConfig
外部音频流配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 音频轨道类型 |
|
|
| 音频流格式,支持 PCM |
|
|
| 声道数 |
|
|
| 采样率(Hz) |
|
|
| 播放音量,范围 [0, 100] |
|
|
| 推流音量,范围 [0, 100] |
|
|
| 最大缓冲时长(ms) |
|
|
| 输入 PCM 是否做 3A 处理 |
AoqAudioFrameData
外部音频数据。
字段 | 类型 | 说明 |
|---|---|---|
|
| 音频 PCM 裸数据指针 |
|
| PCM 数据字节数 |
|
| 采样点数(单声道) |
|
| 每个采样点字节数 |
|
| 声道数 |
|
| 每秒采样点数 |
|
| PCM 输入轮次 |
|
| 时间戳 |
|
| 数据回调有效, |
AoqAudioStreamDirection
外部音频流方向。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 推流音频 |
| 1 | 播放音频 |
AoqAudioExternalStreamToggle
外部音频流切换状态。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 恢复正常 |
| 1 | 暂停 |
AoqAudioSource
音频帧回调数据来源。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 采集的音频数据 |
| 1 | 3A 后的音频数据 |
| 2 | 推流的音频数据(需 Connect 成功) |
| 3 | 播放的音频数据 |
AoqAudioObserverMode
音频帧回调模式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 只读 |
| 1 | 读写 |
AoqAudioObserverConfig
音频帧回调配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 回调音频采样率 |
|
|
| 回调音频声道数 |
|
|
| 读写模式 |
AoqAudioVolumeIndicationConfig
本地音量提示配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 回调间隔(ms);<=0 关闭回调,>0 且 <10 时按 10 处理 |
|
|
| 音量平滑系数,范围 [0, 10],取值越大越平滑 |
AoqAudioVolume
本地音量信息。
字段 | 类型 | 说明 |
|---|---|---|
|
| 平滑后的瞬时音量,范围 [0, 255] |
视频类型
AoqVideoCaptureConfig
视频采集配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 采集宽度(像素); |
|
|
| 采集高度(像素); |
|
|
| 采集帧率; |
|
|
| 是否外部采集; |
AoqVideoCanvas
视频渲染数据结构。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 显示视图,传 nil 表示移除渲染绑定 |
|
|
| 渲染模式 |
view 生命周期长于 setLocalView: / setRemoteView: 设置期间。
AoqRenderMode
渲染显示模式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 自动模式 |
| 1 | 拉伸平铺模式,宽高比不一致时拉伸到目标比例,画面会变形 |
| 2 | 填充黑边模式,宽高比不一致时上下或左右填充黑边 |
| 3 | 裁剪模式,宽高比不一致时裁剪宽或高,画面内容会丢失 |
AoqVideoPixelFormat
视频像素格式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 未知格式 |
| 1 | I420 |
| 2 | NV12 |
| 3 | NV21 |
| 4 | BGRA |
| 5 | RGBA |
| 6 | 零拷贝路径, |
AoqVideoFrame
外部视频数据。
字段 | 类型 | 说明 |
|---|---|---|
|
| 像素格式 |
|
| 宽度(像素) |
|
| 高度(像素) |
|
| 打包格式数据(NV12/NV21/BGRA/RGBA) |
|
| I420 三平面数据 |
|
| I420 三平面步长 |
|
| 零拷贝, |
|
| 时间戳(ms);0 时 SDK 用本地时钟补 |
AoqVideoEncodedFrame
外部已编码视频帧。调用方自行完成编码,SDK 不做二次编码,直接打包发送。
字段 | 类型 | 说明 |
|---|---|---|
|
| 编码格式 |
|
| 编码后数据 |
|
| 宽度(像素) |
|
| 高度(像素) |
|
| 时间戳(ms);0 时 SDK 用本地时钟补 |
AoqVideoCodecType
外部编码帧 codec 类型。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | JPEG |
AoqVideoDeviceState
视频设备状态。
字段 | 类型 | 说明 |
|---|---|---|
|
| 状态码 |
|
| 错误码( |
AoqVideoDeviceStateCode
视频设备状态码。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 无状态 |
| 1 | 摄像头正在启动 |
| 2 | 摄像头已启动 |
| 3 | 摄像头正在停止 |
| 4 | 摄像头已停止 |
| 5 | 摄像头启动失败 |
AoqMirrorMode
镜像模式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 关闭镜像 |
| 1 | 开启镜像 |
AoqOrientationMode
方向模式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 自动 |
| 1 | 竖屏 |
| 2 | 横屏 |
AoqVideoCodecConfig
视频编解码参数(编解码共用)。用于解码时仅 trackType / codecType / width / height / fps / bitrate 生效(作为订阅提议参与协商),其余字段仅编码使用。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 外部编码模式; |
|
|
| 轨道类型 |
|
|
| 编码格式 |
|
|
| 分辨率宽 |
|
|
| 分辨率高 |
|
|
| 帧率 |
|
|
| 起始码率(bps) |
|
|
| 最小码率(bps) |
|
|
| 关键帧间隔(秒) |
|
|
| 镜像模式 |
|
|
| 方向模式 |
AoqVideoSource
视频帧回调数据源(管线位置)。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 采集后的视频数据(前处理前) |
| 1 | 编码前的视频数据(前处理后) |
| 2 | 远端解码后、渲染前的视频数据 |
AoqVideoObserverMode
视频帧回调模式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 只读 |
| 1 | 读写 |
AoqVideoObserverAlignment
视频输出宽度对齐方式。
枚举值 | 值 | 说明 |
|---|---|---|
| 0 | 默认 |
| 1 | 偶数对齐 |
| 2 | 4 对齐 |
| 3 | 8 对齐 |
| 4 | 16 对齐 |
AoqVideoObserverConfig
视频帧回调配置。
字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
|
|
| 期望回调像素格式 |
|
|
| 宽度对齐策略 |
|
|
| 读写模式,仅 I420 / CVPixelBuffer 支持 ReadWrite |
|
|
| 是否对回调数据应用镜像 |
AoqRenderView
渲染视图控件,继承自 NSView,可作为 AoqVideoCanvas.view 使用。
属性 | 类型 | 说明 |
|---|---|---|
|
| 引擎内部显示视图 |
|
| 渲染宽度 |
|
| 渲染高度 |
|
| 是否启用 Metal 渲染 |
|
| 渲染视图事件委托 |
AoqRenderViewDelegate
渲染视图事件委托协议。
回调 | 说明 |
|---|---|
| 渲染视图尺寸变化回调 |