跳转到主要内容
SDK简介

AOQ Client SDK OHOS (HarmonyOS) API 参考

AOQ Client SDK HarmonyOS (OHOS) 端 API 参考,平台语言为 ArkTS (.ets),通过 NAPI 桥接 C++ 引擎。

HarmonyOS SDK

目录

引擎生命周期

接口简介
createEngine创建引擎实例(静态工厂单例)
destroy销毁引擎实例(静态方法)
getVersion获取 SDK 版本号(静态方法)
connect连接 Relay 服务器
disconnect断开服务器连接

音频设备管理

接口简介
startAudioCapture打开音频采集设备(麦克风)
stopAudioCapture关闭音频采集设备
muteAudioCapture静音或取消静音音频采集
startAudioPlayer开始音频渲染(播放远端音频)
stopAudioPlayer停止音频渲染
pauseAudioPlayer暂停音频渲染,支持淡出
resumeAudioPlayer恢复音频渲染,支持淡入
interruptAudioPlayer打断本轮音频通话
enableSpeakerphone切换音频输出到扬声器或听筒
isSpeakerphoneEnabled查询当前是否使用扬声器输出

音频编码配置

接口简介
setAudioEncoderConfig设置音频编码参数
setAudioDecoderConfig设置音频解码参数

音频文件播放

接口简介
startAudioFile开始推流播放本地音频文件
stopAudioFile停止音频文件播放
pauseAudioFile暂停音频文件播放
resumeAudioFile恢复音频文件播放
getAudioFileDuration获取音频文件总时长
getAudioFileCurrentPosition获取音频文件当前播放位置
setAudioFilePositionMillis设置音频文件播放位置(seek)
setAudioFileVolume设置音频文件音量
getAudioFileVolume获取音频文件当前音量

外部音频流

接口简介
addAudioExternalStream新增一条外部音频流
pushAudioExternalStreamData输入外部音频 PCM 数据
setAudioExternalStreamVolume设置外部音频流音量
getAudioExternalStreamVolume获取外部音频流音量
clearAudioExternalStreamBuffer清空外部音频流缓存
removeAudioExternalStream移除外部音频流

音频帧回调

接口简介
setAudioFrameObserver设置音频帧数据回调 observer
enableAudioFrameObserver开启或关闭指定位置的音频帧回调

本地音量提示

接口简介
enableLocalAudioVolumeIndication开启或关闭本地采集音量提示

视频设备管理

接口简介
startVideoCapture打开视频采集设备(摄像头)
stopVideoCapture关闭视频采集设备
switchCamera切换前后置摄像头
setLocalView设置或移除本地视频渲染窗口
setRemoteView设置或移除远端视频渲染窗口

视频编码与外部输入

接口简介
setVideoEncoderConfig设置视频编码参数
setVideoDecoderConfig设置视频解码参数
pushExternalVideoCapturedFrame推送外部采集视频帧
pushExternalVideoEncodedFrame推送外部已编码视频帧

屏幕采集

接口简介
startScreenCapture启动屏幕采集
stopScreenCapture停止屏幕采集

媒体流发送控制

接口简介
enableSendMediaStream控制本地媒体流的发送开关

视频帧回调

接口简介
setVideoFrameObserver设置视频帧数据回调 observer
enableVideoFrameObserver开启或关闭指定位置的视频帧回调

实时消息

接口简介
sendDataMsg发送实时数据消息

AoqEngineEventListener 回调

接口简介
onError引擎错误回调
onWarning引擎警告回调
onConnectionStatusChange连接状态变化回调
onStats引擎统计信息回调
onAudioDeviceStateChanged音频设备操作状态变化回调
onAudioDeviceRouteChanged音频输出路由变化回调
onAudioDeviceInterrupted音频设备中断回调
onVideoDeviceStateChanged视频设备操作状态变化回调
onScreenCaptureStateChanged屏幕采集状态变化回调
onAudioFileState音频文件播放状态回调
onLocalAudioVolumeIndication本地采集音量提示回调
onDataMsg收到实时数据消息回调

IAudioFrameObserver 回调

接口简介
onCapturedAudioFrame采集到原始音频帧时触发。数据为采集后的原始 PCM,未经任何处理。
onProcessCapturedAudioFrame3A 处理后的音频帧回调。数据经过回声消除、噪声抑制、自动增益等 3A 处理。
onPublishAudioFrame推流前的音频帧回调。数据即将通过编码后发送到 Relay 服务器。
onPlaybackAudioFrame播放前的远端音频帧回调。数据为远端解码后、混音前即将播放的音频。

IVideoFrameObserver 回调

接口简介
onCapturedVideoFrame采集到原始视频帧时触发(前处理前)。数据为摄像头或屏幕采集后的原始帧,未经前处理。
onPreEncodeVideoFrame编码前的视频帧回调(前处理后)。数据经过前处理后、编码前。
onRemoteVideoFrame远端解码后、渲染前的视频帧回调。数据为远端接收并解码后的视频帧。

接口详情

pushExternalVideoCapturedFrame 支持 Video / Screen,需先开启对应轨道的外部采集;未开启时返回 AoqECVideoExternalCaptureNotEnabled(211)。pushExternalVideoEncodedFrame 需先配置对应轨道的外部编码,未开启时返回 AoqECVideoExternalEncoderNotEnabled(212)。

引擎生命周期

createEngine

创建引擎实例。SDK 内部以全局单例方式持有引擎,重复调用会返回已创建的实例。native 创建失败时返回 null。
static createEngine(config: AoqCreateConfig, listener: AoqEngineEventListener | null, context: common.Context): AoqClientEngine | null
参数类型说明
configAoqCreateConfig引擎创建配置
listenerAoqEngineEventListener | null引擎事件回调监听(interface,所有回调均为可选);可为 null
contextcommon.ContextUIAbility/Page 的 Context,用于 aki+ACPM 初始化
返回值:AoqClientEngine | null(native 创建失败时返回 null)
OHOS 端创建失败会返回 null,调用方需判空处理。context 必须是有效的 UIAbility 或 Page Context。

destroy

销毁引擎单例,释放所有资源。调用后需重新 createEngine 才能继续使用。
static destroy(): number
返回值:0 表示成功;非 0 表示失败

getVersion

获取 SDK 当前版本号。
static getVersion(): string
返回值:版本号字符串,如 "1.0.0"

connect

连接 Relay 服务器。连接参数由业务方 AppServer 通过 /api/v1/allocate 分配后下发给客户端。
connect(config: AoqConnectConfig): number
参数类型说明
configAoqConnectConfig连接配置,包含 Token、SID、Relay 接入点列表等
返回值:0 表示调用已下发(异步执行);非 0 表示参数校验失败
连接状态变化通过 onConnectionStatusChange 异步通知。建议在 connect 前调用 enableSendMediaStream(false)。

disconnect

断开与服务器的连接,释放连接相关资源。调用后立即返回,实际断开结果通过 onConnectionStatusChange 回调通知。
disconnect(): number
参数:无。 返回值:0 表示调用已下发(异步执行);非 0 表示失败(对应 AoqErrorCode)。 音视频采集/播放设备不会自动停止。

音频设备管理

startAudioCapture

打开音频采集设备(麦克风)。
startAudioCapture(config: AoqAudioCaptureConfig): number
参数类型说明
configAoqAudioCaptureConfig采集配置
返回值:0 表示成功;非 0 表示失败

stopAudioCapture

关闭音频采集设备。
stopAudioCapture(): number

muteAudioCapture

静音或取消静音音频采集。
muteAudioCapture(mute: boolean): number
参数类型说明
mutebooleantrue 为静音;false 为取消静音

startAudioPlayer

开始音频渲染(扬声器/听筒播放远端音频)。
startAudioPlayer(config: AoqAudioPlaybackConfig): number
参数类型说明
configAoqAudioPlaybackConfig播放配置

stopAudioPlayer

停止音频渲染,关闭播放设备。
stopAudioPlayer(): number
参数:无。 返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

pauseAudioPlayer

暂停音频渲染,可指定淡出时长实现平滑过渡。
pauseAudioPlayer(fadeMs: number): number
参数类型说明
fadeMsnumber淡出时长(毫秒);0 表示立即停止

resumeAudioPlayer

恢复音频渲染,可指定淡入时长实现平滑过渡。
resumeAudioPlayer(fadeMs: number): number
参数类型说明
fadeMsnumber淡入时长(毫秒);0 表示立即恢复

interruptAudioPlayer

打断本轮音频通话。
interruptAudioPlayer(trackType: AoqTrackType, fadeMs: number): number
参数类型说明
trackTypeAoqTrackType目标轨道类型,通常传 AoqTrackTypeAudio
fadeMsnumber淡出时长(毫秒)

enableSpeakerphone

切换音频输出路由到扬声器或听筒。
enableSpeakerphone(enable: boolean): number
参数类型说明
enablebooleantrue 使用扬声器;false 使用听筒

isSpeakerphoneEnabled

查询当前是否使用扬声器输出。
isSpeakerphoneEnabled(): boolean
返回值:true 表示当前为扬声器模式;false 表示听筒模式

音频编码配置

setAudioEncoderConfig

设置音频编码参数,用于上行推流的音频编码。配置变更会立即生效。
setAudioEncoderConfig(config: AoqAudioCodecConfig): number
参数类型说明
configAoqAudioCodecConfig音频编码配置;trackType 应设为 AoqTrackType.AoqTrackTypeAudio
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode,如 AoqECParamInvalid 表示参数非法)。
codecType 决定编码格式(默认 Opus),sampleRate 与 channel 需与采集端匹配;bitrate 仅在 Opus 等有损编码下生效。

setAudioDecoderConfig

设置音频解码参数,用于下行拉流的音频解码。需与远端编码参数匹配。
setAudioDecoderConfig(config: AoqAudioCodecConfig): number
参数类型说明
configAoqAudioCodecConfig音频解码配置;trackType 应设为 AoqTrackType.AoqTrackTypeAudio
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
sampleRate 需与远端编码器输出采样率一致,否则可能触发解码错误或音质异常。

音频文件播放

startAudioFile

开始推流播放本地音频文件。可同时推流到远端和本地播放,音量分别由 publishVolume 和 playoutVolume 控制。
startAudioFile(fileId: string, config: AoqAudioFileMixConfig): number
参数类型说明
fileIdstring文件标识符,业务方自定义,用于后续控制
configAoqAudioFileMixConfig音频文件播放配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
播放状态变化通过 onAudioFileState 回调通知;同一 fileId 重复调用会覆盖之前的播放。

stopAudioFile

停止音频文件播放。
stopAudioFile(fileId: string): number
参数类型说明
fileIdstring文件标识符,与 startAudioFile 传入的一致
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

pauseAudioFile

暂停音频文件播放。
pauseAudioFile(fileId: string): number
参数类型说明
fileIdstring文件标识符
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

resumeAudioFile

恢复音频文件播放。需在 pauseAudioFile 之后调用。
resumeAudioFile(fileId: string): number
参数类型说明
fileIdstring文件标识符
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

getAudioFileDuration

获取音频文件总时长。
getAudioFileDuration(fileId: string): number
参数类型说明
fileIdstring文件标识符
返回值:文件总时长(毫秒);文件未加载或不存在时返回 0。

getAudioFileCurrentPosition

获取音频文件当前播放位置。
getAudioFileCurrentPosition(fileId: string): number
参数类型说明
fileIdstring文件标识符
返回值:当前播放位置(毫秒);文件未加载或不存在时返回 0。

setAudioFilePositionMillis

设置音频文件播放位置(seek)。
setAudioFilePositionMillis(fileId: string, positionMillis: number): number
参数类型说明
fileIdstring文件标识符
positionMillisnumber目标播放位置(毫秒)
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

setAudioFileVolume

设置音频文件音量,可分别控制推流音量和本地播放音量。
setAudioFileVolume(fileId: string, type: AoqAudioStreamDirection, volume: number): number
参数类型说明
fileIdstring文件标识符
typeAoqAudioStreamDirection音量方向;AoqAudioStreamPublish 推流,AoqAudioStreamPlayout 播放
volumenumber音量值,取值范围 [0-100]
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

getAudioFileVolume

获取音频文件当前音量。
getAudioFileVolume(fileId: string, type: AoqAudioStreamDirection): number
参数类型说明
fileIdstring文件标识符
typeAoqAudioStreamDirection音量方向
返回值:当前音量值 [0-100];文件不存在时返回 0。

外部音频流

addAudioExternalStream

新增一条外部音频流。可创建多条独立的外部流,通过 streamId 区分。
addAudioExternalStream(streamId: string, config: AoqAudioExternalStreamConfig): number
参数类型说明
streamIdstring外部流标识符,业务方自定义
configAoqAudioExternalStreamConfig外部音频流配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

pushAudioExternalStreamData

输入外部音频 PCM 数据到指定流。
pushAudioExternalStreamData(streamId: string, data: AoqAudioFrameData): number
参数类型说明
streamIdstring外部流标识符
dataAoqAudioFrameDataPCM 音频帧数据
返回值:0 表示调用成功;非 0 表示失败。缓冲区满时返回 AoqECAudioExternalBufferFull(110)。
data.dataPtr 指向的内存仅在调用期间有效,SDK 内部会拷贝;采样率/声道数需与 addAudioExternalStream 时的配置一致。

setAudioExternalStreamVolume

设置外部音频流音量,可分别控制推流音量和本地播放音量。
setAudioExternalStreamVolume(streamId: string, type: AoqAudioStreamDirection, vol: number): number
参数类型说明
streamIdstring外部流标识符
typeAoqAudioStreamDirection音量方向
volnumber音量值,取值范围 [0-100]
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

getAudioExternalStreamVolume

获取外部音频流当前音量。
getAudioExternalStreamVolume(streamId: string, type: AoqAudioStreamDirection): number
参数类型说明
streamIdstring外部流标识符
typeAoqAudioStreamDirection音量方向
返回值:当前音量值 [0-100];流不存在时返回 0。

clearAudioExternalStreamBuffer

清空外部音频流缓存,支持淡出效果。常用于打断当前播放内容。
clearAudioExternalStreamBuffer(streamId: string, fadeoutMs: number): void
参数类型说明
streamIdstring外部流标识符
fadeoutMsnumber淡出时长(毫秒);-1 表示使用默认值,0 表示立即清空,>0 表示保留指定毫秒数淡出
返回值:无(void)。

removeAudioExternalStream

移除外部音频流,释放相关资源。
removeAudioExternalStream(streamId: string): number
参数类型说明
streamIdstring外部流标识符
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

音频帧回调

setAudioFrameObserver

设置音频帧数据回调 observer。传入 observer=null 表示移除监听。
setAudioFrameObserver(observer: IAudioFrameObserver | null): number
参数类型说明
observerIAudioFrameObserver | null音频帧监听接口;传 null 表示移除
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需先调用本接口设置 observer,再通过 enableAudioFrameObserver 开启具体位置的回调。

enableAudioFrameObserver

开启或关闭指定位置的音频帧回调。
enableAudioFrameObserver(enabled: boolean, audioSource: AoqAudioSource, config: AoqAudioObserverConfig): number
参数类型说明
enabledbooleantrue 表示开启;false 表示关闭
audioSourceAoqAudioSource音频源位置;可选采集/3A处理后/推流/播放
configAoqAudioObserverConfig回调配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
frame.dataPtr 是 native 内存的 Uint8Array 拷贝,当前为只读(ReadWrite 模式暂等效 ReadOnly,真回写为后续规划);回调在 JS 线程异步通知,业务回调里可直接操作 ets 状态。

本地音量提示

enableLocalAudioVolumeIndication

开启或关闭本地采集音量提示。开启后 SDK 按 config.interval 周期触发 onLocalAudioVolumeIndication 回调,上报本地采集音量及是否人声。
enableLocalAudioVolumeIndication(config: AoqAudioVolumeIndicationConfig): number
参数类型说明
configAoqAudioVolumeIndicationConfig音量提示配置;interval<=0 表示关闭回调
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需在 startAudioCapture 之后调用才有音量数据;interval>0 且 <10 时按 10 处理。

视频设备管理

startVideoCapture

打开视频采集设备(摄像头),采集内容通过 AoqTrackType.AoqTrackTypeVideo 通道发送。若使用外部视频输入(pushExternalVideoCapturedFrame),需将 isExternal 设为 true,此时不会真正打开摄像头。
startVideoCapture(config: AoqVideoCaptureConfig): number
参数类型说明
configAoqVideoCaptureConfig视频采集配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode,如 AoqECVideoDeviceCameraAuthFailed 表示摄像头权限未获取)。
需在 module.json5 声明 ohos.permission.CAMERA 并动态申请权限;设备状态变化通过 onVideoDeviceStateChanged 回调通知。

stopVideoCapture

关闭视频采集设备,停止本地视频采集。
stopVideoCapture(): number
参数:无。 返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

switchCamera

切换前后置摄像头。
switchCamera(direction: AoqCameraDirection): number
参数类型说明
directionAoqCameraDirectionAoqCameraDirectionFront 或 AoqCameraDirectionBack

setLocalView

设置或移除本地视频渲染窗口。
setLocalView(trackType: AoqTrackType, canvas: AoqVideoCanvas | null): number
参数类型说明
trackTypeAoqTrackTypeAoqTrackTypeVideo
canvasAoqVideoCanvas | null渲染画布配置;传 null 或 canvas.view 为 null 表示移除渲染窗口
OHOS 上必须在 XComponent.onLoad 回调之后调用,canvas.view 应传入 AoqXComponentController 实例。

setRemoteView

设置或移除远端视频渲染窗口。
setRemoteView(trackType: AoqTrackType, canvas: AoqVideoCanvas | null): number
参数类型说明
trackTypeAoqTrackTypeAoqTrackTypeVideo
canvasAoqVideoCanvas | null渲染画布配置;传 null 或 canvas.view 为 null 表示移除渲染窗口

视频编码与外部输入

setVideoEncoderConfig

设置视频编码参数,用于上行推流的视频编码,按 config.trackType 路由。若 isExternal=true,SDK 不做二次编码,由 pushExternalVideoEncodedFrame 直推已编码帧。
setVideoEncoderConfig(config: AoqVideoCodecConfig): number
参数类型说明
configAoqVideoCodecConfig视频编码配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
使用 pushExternalVideoEncodedFrame 时,必须先调用本接口且 isExternal=true,该模式不经过采集管线,无需 startVideoCapture/startScreenCapture;使用 pushExternalVideoCapturedFrame 时,isExternal 保持 false,由 SDK 内部编码。

setVideoDecoderConfig

setVideoDecoderConfig(config: AoqVideoCodecConfig): number
config 为视频解码配置。仅以下字段生效:trackType, codecType, width, height, fps, bitrate. 其余字段仅用于编码。 Screen 不支持下行解码。config.trackType 为 Screen 时返回 AoqECUnSupport,配置不下发。 返回值:0 表示成功;非 0 表示失败。

pushExternalVideoCapturedFrame

推送外部采集视频帧。
pushExternalVideoCapturedFrame(trackType: AoqTrackType, frame: AoqVideoFrame): number
参数类型说明
trackTypeAoqTrackTypeAoqTrackTypeVideo
;也支持 AoqTrackTypeScreen
frameAoqVideoFrame视频帧数据
路由规则:Video 轨道需先调用 startVideoCapture(isExternal=true),Screen 轨道需先调用 startScreenCapture(isExternal=true)。支持格式:NV12 / NV21 / BGRA / RGBA / I420。 若缓冲区满,会返回错误码 AoqECVideoExternalBufferFull(210),调用方需 sleep 后重试,禁止 busy loop。

pushExternalVideoEncodedFrame

推送外部已编码视频帧。SDK 不做二次编码,直接打包发送。
pushExternalVideoEncodedFrame(trackType: AoqTrackType, frame: AoqVideoEncodedFrame): number
参数类型说明
trackTypeAoqTrackTypeAoqTrackTypeVideo
;也支持 AoqTrackTypeScreen
frameAoqVideoEncodedFrame已编码帧数据
路由规则:仅在 setVideoEncoderConfig(isExternal=true) 配置后才消费。

屏幕采集

startScreenCapture(config: AoqScreenCaptureConfig): number
stopScreenCapture(): number
config 为屏幕采集配置。屏幕画面通过 AoqTrackTypeScreen 轨道发送。 启动返回 0 表示请求已受理,最终状态通过 onScreenCaptureStateChanged 通知;非 0 表示同步拒绝,不重复报告失败事件。停止返回 0 表示成功,非 0 表示失败,停止结果由该回调通知。 isExternal=false 时由 SDK 内部采集,系统展示授权交互。无需等待 Started 才开启发送或生产外部帧。 外部原始帧:设置 isExternal=true 后,通过 pushExternalVideoCapturedFrame 输入 Screen 轨道的原始帧,由 SDK 编码。外部已编码帧:先通过 setVideoEncoderConfig 将 Screen 轨道设置为外部编码,再调用 pushExternalVideoEncodedFrame;不需要调用 startScreenCapture。

媒体流发送控制

enableSendMediaStream

控制本地媒体流的发送,按 trackType 路由到对应轨道。
enableSendMediaStream(trackType: AoqTrackType, enable: boolean): number
参数类型说明
trackTypeAoqTrackTypeAoqTrackTypeAudio / AoqTrackTypeVideo
;支持 AoqTrackTypeScreen
enablebooleantrue 启用发送;false 停用发送
使用建议:初始化后先调用 enableSendMediaStream(trackType, false),待 connect 成功且会话握手完成(收到 onConnectionStatusChange(AoqConnectionStatusConnected))后再开启发送。

视频帧回调

setVideoFrameObserver

设置视频帧数据回调 observer。传入 observer=null 表示移除监听。
setVideoFrameObserver(observer: IVideoFrameObserver | null): number
参数类型说明
observerIVideoFrameObserver | null视频帧监听接口;传 null 表示移除
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需先调用本接口设置 observer,再通过 enableVideoFrameObserver 开启具体位置的回调。

enableVideoFrameObserver

开启或关闭指定位置的视频帧回调。
enableVideoFrameObserver(enabled: boolean, videoSource: AoqVideoSource, config: AoqVideoObserverConfig): number
参数类型说明
enabledbooleantrue 表示开启;false 表示关闭
videoSourceAoqVideoSource视频源位置;可选采集后/编码前/远端解码后
configAoqVideoObserverConfig回调配置;通过 config.trackType 指定观察 Video 或 Screen 轨道
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
frame 各 buffer 是 native 内存的 Uint8Array 拷贝,当前为只读(返回值被忽略,ReadWrite 模式暂等效 ReadOnly,真回写为后续规划)。

实时消息

sendDataMsg

发送实时数据消息到远端。需在 connect 成功且 enableSendMediaStream(Data, true) 之后调用。
sendDataMsg(msg: AoqDataMsg): number
参数类型说明
msgAoqDataMsg数据消息
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
远端通过 onDataMsg 回调接收;消息大小受 SDK 内部限制,超大消息建议分片发送。

AoqEngineEventListener 回调

所有回调均为可选属性(?)。
export interface AoqEngineEventListener {
  onError?: (code: number, message: string) => void;
  onWarning?: (code: number, message: string) => void;
  onConnectionStatusChange?: (status: AoqConnectionStatus) => void;
  onStats?: (stats: AoqStats) => void;
  onAudioDeviceStateChanged?: (state: AoqAudioDeviceState) => void;
  onAudioDeviceRouteChanged?: (routeType: number) => void;
  onAudioDeviceInterrupted?: (interrupt: boolean) => void;
  onVideoDeviceStateChanged?: (state: AoqVideoDeviceState) => void;
  onAudioFileState?: (state: AoqAudioFileState) => void;
  onDataMsg?: (msg: AoqDataMsg) => void;
  onScreenCaptureStateChanged?: (state: AoqScreenCaptureState) => void;
  onLocalAudioVolumeIndication?: (volume: AoqAudioVolume) => void;
}

onError

引擎错误回调。发生不可恢复错误时触发。
onError?: (code: number, message: string) => void
参数类型说明
codenumber错误码,对应 AoqErrorCode 枚举值
messagestring错误描述信息
返回值:无(void)。

onWarning

引擎警告回调。发生可恢复异常时触发,不影响 SDK 继续运行。
onWarning?: (code: number, message: string) => void
参数类型说明
codenumber警告码,对应 AoqWarningCode 枚举值
messagestring警告描述信息
返回值:无(void)。

onConnectionStatusChange

连接状态变化回调。状态流转:Disconnected -> Connecting -> Connected/Failed -> Disconnected。
onConnectionStatusChange?: (status: AoqConnectionStatus) => void
参数类型说明
statusAoqConnectionStatus当前连接状态
返回值:无(void)。
收到 Connected 后再调用 enableSendMediaStream(trackType, true) 开启媒体流发送。

onStats

引擎统计信息回调。SDK 周期性上报音视频推拉流及网络统计数据,可用于实时监控通话质量、网络状态、诊断音视频问题。
onStats?: (stats: AoqStats) => void
参数类型说明
statsAoqStats统计信息,包含音频/视频/数据消息的推拉流统计及网络统计
返回值:无(void)。

onAudioDeviceStateChanged

音频设备采集/播放操作状态变化回调。
onAudioDeviceStateChanged?: (state: AoqAudioDeviceState) => void
参数类型说明
stateAoqAudioDeviceState音频设备状态;包含 state(状态码)和 reason(错误原因)
返回值:无(void)。

onAudioDeviceRouteChanged

音频输出路由变化回调。
onAudioDeviceRouteChanged?: (routeType: number) => void
参数类型说明
routeTypenumber当前音频输出路由,对应 AoqAudioDeviceRouteType 枚举值
返回值:无(void)。

onAudioDeviceInterrupted

音频设备中断回调。系统级中断(如来电、其他应用抢占音频焦点)时触发。
onAudioDeviceInterrupted?: (interrupt: boolean) => void
参数类型说明
interruptbooleantrue 表示被中断;false 表示中断恢复
返回值:无(void)。

onVideoDeviceStateChanged

视频设备采集操作状态变化回调。
onVideoDeviceStateChanged?: (state: AoqVideoDeviceState) => void
参数类型说明
stateAoqVideoDeviceState视频设备状态;包含 state(状态码)和 reason(错误原因)
返回值:无(void)。

onScreenCaptureStateChanged

屏幕采集状态变化回调。使用 AoqScreenCaptureStateCode 与统一的 AoqErrorCode,在 JS 线程异步通知。屏幕失败不重复通过 onError 上报。
onScreenCaptureStateChanged?: (state: AoqScreenCaptureState) => void
参数类型说明
stateAoqScreenCaptureState屏幕采集状态;包含 state(状态码)和 reason(错误原因)
返回值:无(void)。
Started 表示采集/外部输入已就绪,不表示媒体已发送;Fail 和 Stopped 均为清理完成后的终态。

onAudioFileState

音频文件播放状态回调。
onAudioFileState?: (state: AoqAudioFileState) => void
参数类型说明
stateAoqAudioFileState音频文件播放状态;包含 fileId、stateCode、errorCode
返回值:无(void)。

onLocalAudioVolumeIndication

本地采集音量提示回调。需调用 enableLocalAudioVolumeIndication 开启后才会触发。
onLocalAudioVolumeIndication?: (volume: AoqAudioVolume) => void
参数类型说明
volumeAoqAudioVolume本地音量信息;包含 isSpeech(是否人声)和 volume(平滑后瞬时音量 [0-255])
返回值:无(void)。

onDataMsg

收到实时数据消息回调。
onDataMsg?: (msg: AoqDataMsg) => void
参数类型说明
msgAoqDataMsg数据消息
返回值:无(void)。
回调在 JS 线程异步通知;data 仅在回调期间有效,异步使用需自行拷贝。

IAudioFrameObserver 回调

音频帧数据监听接口。所有方法均为可选,按需实现。frame.dataPtr 是 native 内存的 Uint8Array 拷贝,当前为只读(ReadWrite 留作后续规划)。
export interface IAudioFrameObserver {
  onCapturedAudioFrame?: (frame: AoqAudioFrameData) => void;
  onProcessCapturedAudioFrame?: (frame: AoqAudioFrameData) => void;
  onPublishAudioFrame?: (trackType: AoqTrackType, frame: AoqAudioFrameData) => void;
  onPlaybackAudioFrame?: (frame: AoqAudioFrameData) => void;
}
方法触发时机参数
onCapturedAudioFrame采集到原始音频帧时(AoqAudioSourceCaptured)frame: AoqAudioFrameData
onProcessCapturedAudioFrame3A 处理后的音频帧(AoqAudioSourceProcessCaptured)frame: AoqAudioFrameData
onPublishAudioFrame推流前的音频帧(AoqAudioSourcePublish)trackType: 轨道类型;frame: AoqAudioFrameData
onPlaybackAudioFrame播放前的远端音频帧(AoqAudioSourcePlayback)frame: AoqAudioFrameData
返回值:无(void)。
用法为 setAudioFrameObserver(obs) + enableAudioFrameObserver(true, src, cfg);回调在 JS 线程异步通知,业务回调里可直接操作 ets 状态。

onCapturedAudioFrame

采集到原始音频帧时触发。数据为采集后的原始 PCM,未经任何处理。
onCapturedAudioFrame?(frame: AoqAudioFrameData): void
参数类型说明
frameAoqAudioFrameData采集的音频帧数据
返回值:无(void)。
frame.dataPtr 为 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

onProcessCapturedAudioFrame

3A 处理后的音频帧回调。数据经过回声消除、噪声抑制、自动增益等 3A 处理。
onProcessCapturedAudioFrame?(frame: AoqAudioFrameData): void
参数类型说明
frameAoqAudioFrameData3A 处理后的音频帧数据
返回值:无(void)。
frame.dataPtr 为 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

onPublishAudioFrame

推流前的音频帧回调。数据即将通过编码后发送到 Relay 服务器。
onPublishAudioFrame?(trackType: AoqTrackType, frame: AoqAudioFrameData): void
参数类型说明
trackTypeAoqTrackType轨道类型
frameAoqAudioFrameData推流前的音频帧数据
返回值:无(void)。
frame.dataPtr 为 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

onPlaybackAudioFrame

播放前的远端音频帧回调。数据为远端解码后、混音前即将播放的音频。
onPlaybackAudioFrame?(frame: AoqAudioFrameData): void
参数类型说明
frameAoqAudioFrameData播放前的远端音频帧数据
返回值:无(void)。
frame.dataPtr 为 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

IVideoFrameObserver 回调

视频帧数据监听接口。所有方法均为可选,返回 boolean(当前返回值被忽略,只读语义,ReadWrite 留作后续规划)。三个回调均带 trackType 参数,用于区分 Video / Screen 轨道。
export interface IVideoFrameObserver {
  onCapturedVideoFrame?: (trackType: AoqTrackType, frame: AoqVideoFrame) => boolean;
  onPreEncodeVideoFrame?: (trackType: AoqTrackType, frame: AoqVideoFrame) => boolean;
  onRemoteVideoFrame?: (trackType: AoqTrackType, frame: AoqVideoFrame) => boolean;
}
方法触发时机参数
onCapturedVideoFrame采集到原始视频帧时(前处理前,AoqVideoSourceCaptured)trackType: 轨道类型;frame: AoqVideoFrame
onPreEncodeVideoFrame编码前的视频帧(前处理后,AoqVideoSourcePreEncode)trackType: 轨道类型;frame: AoqVideoFrame
onRemoteVideoFrame远端解码后、渲染前的视频帧(AoqVideoSourceRemote)trackType: 轨道类型;frame: AoqVideoFrame
返回值:boolean。语义上返回 true 表示数据已修改需写回 SDK;当前 OHOS NAPI 路径不真回写,返回值被忽略。
用法为 setVideoFrameObserver(obs) + enableVideoFrameObserver(true, src, cfg);frame 各 buffer 是 native 内存的 Uint8Array 拷贝,仅回调期间有效。

onCapturedVideoFrame

采集到原始视频帧时触发(前处理前)。数据为摄像头或屏幕采集后的原始帧,未经前处理。
onCapturedVideoFrame?(trackType: AoqTrackType, frame: AoqVideoFrame): boolean
参数类型说明
trackTypeAoqTrackType轨道类型,区分 Video / Screen
frameAoqVideoFrame采集的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK;当前 OHOS NAPI 路径不真回写,语义等同 false。false 表示只读。
frame 各 buffer 是 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

onPreEncodeVideoFrame

编码前的视频帧回调(前处理后)。数据经过前处理后、编码前。
onPreEncodeVideoFrame?(trackType: AoqTrackType, frame: AoqVideoFrame): boolean
参数类型说明
trackTypeAoqTrackType轨道类型,区分 Video / Screen
frameAoqVideoFrame编码前的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK;当前 OHOS NAPI 路径不真回写,语义等同 false。false 表示只读。
frame 各 buffer 是 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

onRemoteVideoFrame

远端解码后、渲染前的视频帧回调。数据为远端接收并解码后的视频帧。
onRemoteVideoFrame?(trackType: AoqTrackType, frame: AoqVideoFrame): boolean
参数类型说明
trackTypeAoqTrackType轨道类型,区分 Video / Screen
frameAoqVideoFrame远端解码后的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK;当前 OHOS NAPI 路径不真回写,语义等同 false。false 表示只读。
frame 各 buffer 是 native 内存的 Uint8Array 拷贝,仅在回调期间有效,异步使用需自行拷贝。

数据类型与枚举

v1.3.0 的 Index.ets 对外导出以下枚举和接口:
  • 枚举:AoqTrackMode、AoqScreenCaptureStateCode。
  • 接口:AoqAudioVolumeIndicationConfig、AoqAudioVolume、AoqScreenCaptureConfig、AoqScreenCaptureState。

通用类型

AoqCreateConfig

字段类型默认值说明
workDirstring""SDK 工作目录
enableDumpAudiobooleanfalse是否开启音频原始数据 dump(调试用)
extrasstring""扩展参数字符串
maxEncodedVideoFrameBytesnumber190 × 1024编码后单帧大小上限(字节),仅用于 SDK 内部 JPEG 编码。
enableDropOversizedVideoFramebooleanfalse仅用于 SDK 内部 JPEG 编码:降至最低质量后仍超限时,是否允许丢弃该帧。
OHOS 无 isBTScoMode 字段。

AoqConnectConfig

subscribeTracks 不能包含 AoqTrackTypeScreen,否则 connect 返回 AoqECUnSupport,不发起连接。setRemoteView 不支持 Screen,传入时返回 AoqECUnSupport。
字段类型默认值说明
tokenstring""连接鉴权 Token
sidstring""会话 ID
certFingerprintstring""服务器证书指纹
relayEndpointsAoqRelayEndpoint[][]Relay 接入点列表
workspaceIdHashstring""工作空间 ID Hash
publishTracksAoqTrackParam[][]本端计划发布的轨道列表
subscribeTracksAoqTrackParam[][]本端计划订阅的轨道列表

AoqRelayEndpoint

字段类型说明
endpointstringRelay 服务器域名或 IP
portnumberRelay 服务器端口
routeIndexnumber路径序号,默认值为 -1。
tcpPortnumber默认值为 0。TCP 降级端口;0 表示使用 SDK 默认端口 443。

AoqTrackParam

字段类型说明
trackTypeAoqTrackType轨道类型
trackModeAoqTrackMode默认 AoqTrackModeSegment,仅对音频下行生效。

枚举类型

AoqErrorCode

枚举值值说明
AoqECOK0成功
AoqECParamInvalid1参数非法
AoqECStateInvalid2状态非法
AoqECUnSupport3不支持
AoqECAudio100音频通用错误
AoqECAudioExternalBufferFull110外部音频缓冲区满
AoqECAudioDevice120音频设备通用错误
AoqECAudioDeviceRecordingAuthFailed121录音权限未获取
AoqECAudioDeviceRecordingOccupied122录音设备被占用
AoqECAudioDeviceRecordingBackgroundStart123后台启动录音失败
AoqECAudioDeviceRecordingStartFail124录音启动失败
AoqECAudioDevicePlayoutOccupied125播放设备被占用
AoqECAudioDevicePlayoutBackgroundStart126后台启动播放失败
AoqECAudioDevicePlayoutStartFail127播放启动失败
AoqECAudioDeviceEarpieceRequiresVoipMode128听筒模式需要启用 VoIP 模式
AoqECVideo200视频通用错误
AoqECVideoExternalBufferFull210外部视频缓冲区满
AoqECVideoExternalCaptureNotEnabled211外部视频采集未启用
AoqECVideoExternalEncoderNotEnabled212外部视频编码器未启用
AoqECVideoDevice220视频设备通用错误
AoqECVideoDeviceCameraOpenFail221摄像头打开失败
AoqECVideoDeviceCameraAuthFailed222摄像头权限未获取
AoqECVideoDeviceCameraOccupied223摄像头被占用
AoqECVideoDeviceCameraRunningError224摄像头运行异常
AoqECVideoCodec230视频编解码通用错误
AoqECVideoCodecEncoderInitFail231视频编码器初始化失败
AoqECVideoRender240视频渲染通用错误
AoqECVideoRenderCreateFail241视频渲染创建失败
AoqECVideoRenderDrawError242视频渲染绘制错误
AoqECScreen300屏幕共享通用错误
AoqECScreenAuthFailed310屏幕共享授权失败
AoqECScreenStartFailed311屏幕共享启动失败

AoqWarningCode

枚举值值说明
AoqWCOK0无警告
AoqWCAudio100音频通用警告
AoqWCAudioHowling101音频啸叫检测
AoqWCAudioDevice120音频设备通用警告
AoqWCAudioDeviceMicEnumerateError121麦克风枚举错误
AoqWCAudioDeviceMicStartTimeout122麦克风启动超时
AoqWCAudioDeviceRecordingError123录音过程错误
AoqWCAudioDeviceSpeakerEnumerateError124扬声器枚举错误
AoqWCAudioDeviceSpeakerStartTimeout125扬声器启动超时
AoqWCAudioDevicePlayoutError126播放过程错误
AoqWCVideo200视频通用警告
AoqWCVideoCameraEnumerateError201摄像头枚举错误
AoqWCVideoEncoderSwitched202视频编码器已切换
AoqWCVideoRenderDowngrade203视频渲染降级

AoqTrackType

枚举值值说明
AoqTrackTypeAudio0音频轨道
AoqTrackTypeVideo1视频轨道
AoqTrackTypeData2数据消息轨道
AoqTrackTypeScreen3屏幕共享轨道,仅支持上行。

AoqEncoderType

Track 媒体编码格式。
枚举值值说明
AoqEncoderTypeUnknown0未知格式
AoqEncoderTypeAudioPCM1音频 PCM
AoqEncoderTypeAudioOpus2音频 Opus
AoqEncoderTypeVideoH2643视频 H.264
AoqEncoderTypeVideoJpeg4视频 JPEG
AoqEncoderTypeDataText5数据文本

AoqTrackMode

枚举值值说明
AoqTrackModeSegment0分段:按语义片段(如一句话)交付数据;仅对音频下行生效。
AoqTrackModeStream1流式:连续交付数据;仅对音频下行生效。

AoqConnectionStatus

枚举值值说明
AoqConnectionStatusDisconnected0未连接
AoqConnectionStatusConnecting1连接中
AoqConnectionStatusConnected2已连接
AoqConnectionStatusFailed3连接失败

AoqMirrorMode

镜像模式。
枚举值值说明
AoqMirrorModeDisabled0关闭镜像
AoqMirrorModeEnabled1开启镜像

AoqOrientationMode

视频方向模式。
枚举值值说明
AoqOrientationModeAuto0自动适应
AoqOrientationModePortrait1竖屏
AoqOrientationModeLandscape2横屏

音频类型

AoqAudioCaptureConfig

字段类型默认值说明
isExternalbooleanfalsetrue 使用外部音频输入
isVoipModebooleanfalsetrue 启用 VoIP 模式(硬件 AEC)
channelnumber1声道数,支持 1/2

AoqAudioPlaybackConfig

字段类型默认值说明
isVoipModebooleanfalsetrue 启用 VoIP 模式(硬件 AEC),采集/播放参数先到为准
isDefaultSpeakerbooleantruetrue 默认扬声器;false 默认听筒
isExternalbooleanfalsetrue 使用外部音频输出
channelnumber1声道数,支持 1/2

AoqAudioCodecConfig

字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeAudio目标轨道
codecTypeAoqEncoderTypeAoqEncoderTypeAudioOpus编码格式
sampleRatenumber48000采样率(Hz)
channelnumber1声道数
bitratenumber32000码率(bps)

AoqAudioDeviceStateCode

音频设备采集播放操作状态码。
枚举值值说明
AoqAudioDeviceNone0无状态
AoqAudioDeviceRecordStarting1采集启动中
AoqAudioDeviceRecordStarted2采集已启动
AoqAudioDeviceRecordStopping3采集停止中
AoqAudioDeviceRecordStopped4采集已停止
AoqAudioDeviceRecordFail5采集失败
AoqAudioDevicePlayStarting6播放启动中
AoqAudioDevicePlayStarted7播放已启动
AoqAudioDevicePlayStopping8播放停止中
AoqAudioDevicePlayStopped9播放已停止
AoqAudioDevicePlayFail10播放失败

AoqAudioDeviceState

音频设备状态。
字段类型默认值说明
stateAoqAudioDeviceStateCodeAoqAudioDeviceNone状态码
reasonnumber0错误原因代码(参考 AoqErrorCode)

AoqAudioDeviceRouteType

音频设备路由类型。
枚举值值说明
AoqAudioDeviceRouteDefault0默认路由
AoqAudioDeviceRouteHeadset1有麦克风的头戴设备
AoqAudioDeviceRouteEarpiece2听筒
AoqAudioDeviceRouteHeadsetNoMic3无麦克风的头戴设备
AoqAudioDeviceRouteSpeakerPhone4扬声器
AoqAudioDeviceRouteUsb5USB 音频设备
AoqAudioDeviceRouteBluetooth6蓝牙 SCO 模式
AoqAudioDeviceRouteBluetoothA2dp7蓝牙 A2DP 模式

音频文件类型

AoqAudioFileMixConfig

字段类型默认值说明
fileNamestring""文件名(含路径)
cyclesnumber-1循环次数,-1 无限循环
startPosMsnumber0起始播放位置(ms)
publishVolumenumber100推流音量 [0,100]
playoutVolumenumber100本地播放音量 [0,100]

AoqAudioFileStateCode

音频文件状态码。
枚举值值说明
AoqAudioFileNone0无状态
AoqAudioFileStarted1播放已启动
AoqAudioFileStopped2播放已停止
AoqAudioFilePaused3播放已暂停
AoqAudioFileResumed4播放已恢复
AoqAudioFileEnded5播放已结束
AoqAudioFileBuffering6播放缓冲中
AoqAudioFileBufferingEnd7缓冲结束
AoqAudioFileFailed8播放失败

AoqAudioFileErrorCode

音频文件错误码。
枚举值值说明
AoqAudioFileNoError0无错误
AoqAudioFileOpenFailed1文件打开失败
AoqAudioFileDecodeFailed2文件解码失败

AoqAudioFileState

音频文件状态。
字段类型默认值说明
fileIdstring""文件 ID
stateCodeAoqAudioFileStateCodeAoqAudioFileNone状态码
errorCodeAoqAudioFileErrorCodeAoqAudioFileNoError错误码

外部音频流与音量类型

AoqAudioStreamDirection

外部音频流方向。
枚举值值说明
AoqAudioStreamPublish0发布流(推流)
AoqAudioStreamPlayout1播放流(拉流)

AoqAudioExternalStreamToggle

外部音频流切换状态。
枚举值值说明
AoqAudioExternalStreamToggleNormal0正常状态
AoqAudioExternalStreamTogglePause1暂停状态

AoqAudioExternalStreamConfig

字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeAudio轨道类型
codecTypeAoqEncoderTypeAoqEncoderTypeAudioPCM音频格式
channelsnumber1声道数
sampleRatenumber48000采样率(Hz)
playoutVolumenumber100播放音量 [0,100]
publishVolumenumber100推流音量 [0,100]
maxBufferDurationnumber1000最大缓冲(ms)
enable3Abooleanfalse输入 PCM 做 3A 处理

AoqAudioFrameData

字段类型说明
dataPtrArrayBuffer | Uint8Array | null音频 PCM 裸数据
dataSizenumberPCM 字节数
numOfSamplesnumber采样点数(单声道)
bytesPerSamplenumber每采样点字节数
numOfChannelsnumber声道数
samplesPerSecnumber每秒采样点数
pushSequencenumberPCM 输入轮次
timeStampnumber时间戳
autoGenMutebooleantrue 表示 SDK 生成的静音数据

AoqAudioSource

音频帧回调数据来源。
枚举值值说明
AoqAudioSourceCaptured0采集的音频数据
AoqAudioSourceProcessCaptured13A 处理后的音频数据
AoqAudioSourcePublish2推流的音频数据
AoqAudioSourcePlayback3播放的音频数据

AoqAudioObserverMode

音频帧回调模式。
枚举值值说明
AoqAudioObserverModeReadOnly0只读模式
AoqAudioObserverModeReadWrite1读写模式(当前 OHOS NAPI 路径不真回写,语义等同 ReadOnly)

AoqAudioObserverConfig

字段类型默认值说明
sampleRatenumber48000回调采样率
channelsnumber1回调声道数
modeAoqAudioObserverModeReadOnly读写模式

AoqAudioVolumeIndicationConfig

字段类型默认值说明
reportSpeechbooleanfalse是否检测人声。
intervalnumber0回调间隔(毫秒);小于等于 0 时关闭,大于 0 且小于 10 时按 10 处理。
smoothnumber3平滑系数,范围 0~10;越大越平滑。

AoqAudioVolume

字段类型说明
isSpeechboolean是否为人声。
volumenumber平滑后的瞬时音量,范围 0~255。

视频类型

AoqRenderMode

渲染显示模式。
枚举值值说明
AoqRenderModeAuto0自动模式
AoqRenderModeStretch1拉伸平铺,画面可能变形
AoqRenderModeFill2填充黑边,画面完整
AoqRenderModeCrop3裁剪模式,画面内容可能丢失

AoqVideoCanvas

字段类型默认值说明
viewObject | nullnullAoqXComponentController 实例;传 null 表示移除渲染绑定
renderModeAoqRenderModeAoqRenderModeAuto显示模式

AoqCameraDirection

摄像头方向。
枚举值值说明
AoqCameraDirectionFront0前置摄像头
AoqCameraDirectionBack1后置摄像头

AoqVideoCaptureConfig

字段类型默认值说明
widthnumber1280采集宽度;isExternal=true 时无效
heightnumber720采集高度
fpsnumber15采集帧率
isExternalbooleanfalsetrue 不打开摄像头,由 pushExternalVideoCapturedFrame 喂帧
cameraDirectionAoqCameraDirectionFront摄像头方向

AoqScreenCaptureConfig

字段类型默认值说明
isExternalbooleanfalse是否由应用提供屏幕原始帧。

AoqVideoPixelFormat

枚举值值说明
AoqVideoPixelFormatUnknown0未知
AoqVideoPixelFormatI4201I420
AoqVideoPixelFormatNV122NV12
AoqVideoPixelFormatNV213NV21
AoqVideoPixelFormatBGRA4BGRA
AoqVideoPixelFormatRGBA5RGBA
OHOS 不支持 TextureOES/Texture2D。

AoqVideoFrame

字段类型说明
formatAoqVideoPixelFormat像素格式
widthnumber宽度(像素)
heightnumber高度(像素)
dataPtrArrayBuffer | Uint8Array | null打包格式数据
dataSizenumber打包数据字节数
dataY / dataU / dataVArrayBuffer | Uint8Array | nullI420 平面
strideY / strideU / strideVnumber平面 stride
timeStampnumber时间戳(ms);0 时 SDK 用本地时钟补

AoqVideoCodecType

外部编码帧 codec 类型。
枚举值值说明
AoqVideoCodecTypeJPEG0JPEG 编码

AoqVideoEncodedFrame

字段类型说明
codecAoqVideoCodecType编码格式 (AoqVideoCodecTypeJPEG=0)
dataArrayBuffer | Uint8Array编码后数据
widthnumber宽度
heightnumber高度
timeStampnumber时间戳(ms)

AoqVideoCodecConfig

字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeVideo目标轨道
codecTypeAoqEncoderTypeAoqEncoderTypeVideoH264编码格式
widthnumber540编码宽度
heightnumber960编码高度
fpsnumber5帧率
bitratenumber500000码率(bps)
minBitratenumber128000最小码率(bps)
keyframeIntervalnumber2关键帧间隔(秒)
mirrorModeAoqMirrorModeDisabled镜像模式
orientationModeAoqOrientationModeAuto视频方向
isExternalbooleanfalsetrue 时 SDK 不做二次编码

AoqVideoDeviceStateCode

视频设备采集操作状态码。
枚举值值说明
AoqVideoDeviceNone0无状态
AoqVideoDeviceCaptureStarting1摄像头正在启动
AoqVideoDeviceCaptureStarted2摄像头已启动
AoqVideoDeviceCaptureStopping3摄像头正在停止
AoqVideoDeviceCaptureStopped4摄像头已停止
AoqVideoDeviceCaptureFail5摄像头启动失败

AoqVideoDeviceState

视频设备状态。
字段类型默认值说明
stateAoqVideoDeviceStateCodeAoqVideoDeviceNone状态码
reasonnumber0错误原因代码(参考 AoqErrorCode)

AoqScreenCaptureStateCode

枚举值值说明
AoqScreenCaptureNone0无
AoqScreenCaptureStarting1启动中
AoqScreenCaptureStarted2输入已就绪,不表示媒体已发送
AoqScreenCaptureStopping3停止中
AoqScreenCaptureStopped4已停止
AoqScreenCaptureFail5启动或运行失败

AoqScreenCaptureState

字段类型默认值说明
stateAoqScreenCaptureStateCode—屏幕采集状态。
reasonnumber—正常为 0;失败时为 AoqErrorCode 错误码。

视频帧回调类型

AoqVideoSource

视频帧回调数据源(管线位置)。
枚举值值说明
AoqVideoSourceCaptured0采集后的视频数据(前处理前)
AoqVideoSourcePreEncode1编码前的视频数据(前处理后)
AoqVideoSourceRemote2远端解码后、渲染前的视频数据

AoqVideoObserverMode

视频帧回调模式。
枚举值值说明
AoqVideoObserverModeReadOnly0只读模式
AoqVideoObserverModeReadWrite1读写模式(当前 OHOS NAPI 路径不真回写,语义等同 ReadOnly)

AoqVideoObserverAlignment

视频输出宽度对齐方式。
枚举值值说明
AoqVideoObserverAlignmentDefault0默认对齐
AoqVideoObserverAlignmentEven1偶数对齐
AoqVideoObserverAlignment424 字节对齐
AoqVideoObserverAlignment838 字节对齐
AoqVideoObserverAlignment16416 字节对齐

AoqVideoObserverConfig

字段类型默认值说明
formatAoqVideoPixelFormatI420回调像素格式
alignmentAoqVideoObserverAlignmentDefault宽度对齐
modeAoqVideoObserverModeReadOnly读写模式
mirrorAppliedbooleanfalse是否应用镜像
trackTypeAoqTrackTypeAoqTrackTypeVideo需要观察的视频轨道;仅支持 Video / Screen。

数据消息类型

AoqDataMsg

实时消息数据结构。
字段类型默认值说明
dataArrayBuffer / Uint8Array必填消息数据

统计数据类型

AoqStats

字段类型说明
audioPublishStatsAoqAudioPublishStats[]音频推流统计
videoPublishStatsAoqVideoPublishStats[]视频推流统计
dataMsgPublishStatsAoqDataMsgPublishStats[]数据消息推流统计
audioSubscribeStatsAoqAudioSubscribeStats[]音频拉流统计
videoSubscribeStatsAoqVideoSubscribeStats[]视频拉流统计
dataMsgSubscribeStatsAoqDataMsgSubscribeStats[]数据消息拉流统计
networkStatsAoqNetworkStats | null网络统计

AoqAudioPublishStats

音频推流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计发送字节数
encodeVolumenumber推流编码音量

AoqVideoPublishStats

视频推流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计发送字节数
encodeFpsnumber编码帧率

AoqDataMsgPublishStats

数据消息推流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计发送字节数

AoqAudioSubscribeStats

音频拉流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计接收字节数
playVolumenumber播放音量

AoqVideoSubscribeStats

视频拉流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计接收字节数
decodeFpsnumber解码帧率
renderFpsnumber渲染帧率

AoqDataMsgSubscribeStats

数据消息拉流统计。
字段类型说明
trackTypenumber轨道类型(对应 AoqTrackType)
bitratenumber码率(bps)
bytesnumber累计接收字节数

AoqNetworkStats

网络统计。
字段类型说明
sendBitratenumber发送码率(bps)
sendBytesnumber累计发送字节数
recvBitratenumber接收码率(bps)
recvBytesnumber累计接收字节数
lossnumber丢包率(0-100)
rttnumber往返延迟(ms)