跳转到主要内容
SDK简介

AOQ Client SDK Android API 参考

AOQ Client SDK Android 版提供完整的实时音视频通信能力,包括引擎生命周期管理、音频/视频采集与播放、编解码配置、外部音频流注入、音频文件混音、实时消息收发、音视频帧数据回调等功能。本文档为 Android 平台 Java API 的完整参考。

接口目录

引擎生命周期

接口简介
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设置音频帧数据回调监听
enableAudioFrameObserver开启或关闭指定位置的音频帧回调

本地音量提示

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

视频设备管理

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

视频编码与外部输入

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

屏幕采集

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

媒体流发送控制

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

视频帧回调

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

实时消息

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

AoqClientListener 回调

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

AoqAudioFrameListener 回调

接口简介
onCapturedAudioFrame采集到原始音频帧时触发。数据为采集后的原始 PCM,未经任何处理。
onProcessCapturedAudioFrame3A 处理后的音频帧触发。数据已经过回声消除、降噪等处理。
onPublishAudioFrame推流前的音频帧触发。数据为最终编码发送前的音频。
onPlaybackAudioFrame播放前的远端音频帧触发。数据为解码后、混音后待播放的音频。

AoqVideoFrameListener 回调

接口简介
onCapturedVideoFrame采集到原始视频帧时触发(前处理前)。
onPreEncodeVideoFrame编码前的视频帧触发(前处理后)。
onRemoteVideoFrame远端解码后、渲染前的视频帧触发。

接口详情

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

引擎生命周期

createEngine 创建引擎实例。SDK 内部以全局单例方式持有引擎,重复调用会返回已创建的实例。
@NonNull
public static AoqClientEngine createEngine(
    @NonNull Context context,
    @NonNull AoqCreateConfig config,
    @NonNull AoqClientListener listener)
参数类型说明
contextContextAndroid 应用上下文
configAoqCreateConfig引擎创建配置
listenerAoqClientListener引擎事件回调监听
返回值:AoqClientEngine 引擎实例,不会返回 null。 destroy 销毁引擎实例,释放所有资源。销毁后需要重新调用 createEngine 才能继续使用。
public static int destroy()
参数:无。 返回值:0 表示成功;非 0 表示失败(对应 AoqErrorCode)。 getVersion 获取 SDK 当前版本号。可在 createEngine 之前调用。
@NonNull
public static String getVersion()
参数:无。 返回值:版本号字符串,如 "1.3.0"。 connect 连接 Relay 服务器。连接参数由业务方 AppServer 通过 /api/v1/allocate 分配后下发给客户端。调用后立即返回,实际连接结果通过 onConnectionStatusChange 回调通知。
public abstract int connect(@NonNull AoqConnectConfig config)
参数类型说明
configAoqConnectConfig连接配置,包含 Token、SID、Relay 接入点列表、发布/订阅轨道等
返回值:0 表示调用已下发(异步执行);非 0 表示参数校验失败(对应 AoqErrorCode)。
Screen track 当前仅支持上行,下行订阅尚未实现,因此 config.subscribeTracks 中不能传入 AoqTrackTypeScreen,否则返回 AoqECUnSupport 且连接不会发起;连接成功前不建议调用 enableSendMediaStream(true),应在 onConnectionStatusChange 收到 Connected 后再开启媒体流发送。
disconnect 断开与服务器的连接,释放连接相关资源。调用后立即返回,实际断开结果通过 onConnectionStatusChange 回调通知。
public abstract int disconnect()
参数:无。 返回值:0 表示调用已下发(异步执行);非 0 表示失败(对应 AoqErrorCode)。

音频设备管理

startAudioCapture

打开音频采集设备(麦克风),开始采集本地音频。若使用外部音频输入(pushAudioExternalStreamData),需将 isExternal 设为 true,此时不会真正打开麦克风。
public abstract int startAudioCapture(@NonNull AoqAudioCaptureConfig config)
参数类型说明
configAoqAudioCaptureConfig音频采集配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode,如 AoqECAudioDeviceRecordingAuthFailed 表示录音权限未获取)。
Android 需在调用前申请 RECORD_AUDIO 权限;设备状态变化通过 onAudioDeviceStateChanged 回调通知。

stopAudioCapture

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

muteAudioCapture

静音或取消静音音频采集。静音后 SDK 仍持续采集但发送静音帧,与 stopAudioCapture 不同。
public abstract int muteAudioCapture(boolean mute)
参数类型说明
mutebooleantrue 表示静音;false 表示取消静音
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需在 startAudioCapture 之后调用才生效。

startAudioPlayer

开始音频渲染,播放远端音频到扬声器/听筒。若使用外部渲染(自行播放 PCM),需将 isExternal 设为 true。
public abstract int startAudioPlayer(@NonNull AoqAudioPlaybackConfig config)
参数类型说明
configAoqAudioPlaybackConfig音频播放配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode,如 AoqECAudioDevicePlayoutOccupied 表示播放设备被占用)。
设备状态变化通过 onAudioDeviceStateChanged 回调通知;输出路由变化通过 onAudioDeviceRouteChanged 回调通知。

stopAudioPlayer

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

pauseAudioPlayer

暂停音频渲染,支持淡出效果。暂停期间远端音频数据仍会到达但不播放。
public abstract int pauseAudioPlayer(int fadeMs)
参数类型说明
fadeMsint淡出时长(毫秒);0 表示立即暂停
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

resumeAudioPlayer

恢复音频渲染,支持淡入效果。需在 pauseAudioPlayer 之后调用。
public abstract int resumeAudioPlayer(int fadeMs)
参数类型说明
fadeMsint淡入时长(毫秒);0 表示立即恢复
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

interruptAudioPlayer

打断本轮音频通话,清空当前播放缓冲区。常用于 AI 对话场景下用户打断 AI 说话。
public abstract int interruptAudioPlayer(@NonNull AoqTrackType trackType, int fadeMs)
参数类型说明
trackTypeAoqTrackType需要打断的轨道类型
fadeMsint淡出时长(毫秒);0 表示立即打断
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

enableSpeakerphone

切换音频输出到扬声器或听筒。仅在 startAudioPlayer 之后生效。
public abstract int enableSpeakerphone(boolean enable)
参数类型说明
enablebooleantrue 表示切换到扬声器;false 表示切换到听筒
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode,如 AoqECAudioDeviceEarpieceRequiresVoipMode 表示听筒需要 VoIP 模式)。
切换到听筒需要 AoqAudioPlaybackConfig.isVoipMode=true;路由变化通过 onAudioDeviceRouteChanged 回调通知。

isSpeakerphoneEnabled

查询当前是否使用扬声器输出。
public abstract boolean isSpeakerphoneEnabled()
参数:无。 返回值:true 表示当前使用扬声器;false 表示当前使用听筒或其他路由。

音频编码配置

setAudioEncoderConfig

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

setAudioDecoderConfig

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

音频文件播放

startAudioFile

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

stopAudioFile

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

pauseAudioFile

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

resumeAudioFile

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

getAudioFileDuration

获取音频文件总时长。
public abstract long getAudioFileDuration(@NonNull String fileId)
参数类型说明
fileIdString文件标识符
返回值:文件总时长(毫秒);文件未加载或不存在时返回 0。

getAudioFileCurrentPosition

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

setAudioFilePositionMillis

设置音频文件播放位置(seek)。
public abstract int setAudioFilePositionMillis(@NonNull String fileId, long positionMillis)
参数类型说明
fileIdString文件标识符
positionMillislong目标播放位置(毫秒)
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

setAudioFileVolume

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

getAudioFileVolume

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

外部音频流

addAudioExternalStream

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

pushAudioExternalStreamData

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

setAudioExternalStreamVolume

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

getAudioExternalStreamVolume

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

clearAudioExternalStreamBuffer

清空外部音频流缓存,支持淡出效果。常用于打断当前播放内容。
public abstract void clearAudioExternalStreamBuffer(@NonNull String streamId, int fadeoutMs)
参数类型说明
streamIdString外部流标识符
fadeoutMsint淡出时长(毫秒);-1 表示使用默认值,0 表示立即清空,>0 表示保留指定毫秒数淡出
返回值:无(void)。
pushAudioExternalStreamData 缓冲区满时返回 AoqECAudioExternalBufferFull(110),建议 Sleep 30ms 后重试。

removeAudioExternalStream

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

音频帧回调

setAudioFrameObserver

设置音频帧数据回调监听。传入 listener=null 表示移除监听。
public abstract int setAudioFrameObserver(@Nullable AoqClientListener.AoqAudioFrameListener listener)
参数类型说明
listenerAoqAudioFrameListener音频帧监听接口;传 null 表示移除
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需先调用本接口设置 listener,再通过 enableAudioFrameObserver 开启具体位置的回调。

enableAudioFrameObserver

开启或关闭指定位置的音频帧回调。
public abstract int enableAudioFrameObserver(boolean enabled, @NonNull AoqAudioSource audioSource, @NonNull AoqAudioObserverConfig config)
参数类型说明
enabledbooleantrue 表示开启;false 表示关闭
audioSourceAoqAudioSource音频源位置;可选采集/3A处理后/推流/播放
configAoqAudioObserverConfig回调配置
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。 回调数据仅在回调期间有效,异步使用需自行拷贝。

本地音量提示

enableLocalAudioVolumeIndication

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

视频设备管理

startVideoCapture

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

stopVideoCapture

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

switchCamera

切换前后置摄像头。需在 startVideoCapture(isExternal=false) 之后调用。
public abstract int switchCamera(@NonNull AoqCameraDirection direction)
参数类型说明
directionAoqCameraDirection目标摄像头方向;AoqCameraDirectionFront 前置,AoqCameraDirectionBack 后置
返回值:0 表示调用成功;< 0 表示失败(对应 AoqErrorCode)。
外部采集模式(isExternal=true)下调用无效。

setLocalView

设置或移除本地视频渲染窗口。传入 canvas=null 或 canvas.view=null 表示移除渲染。
public abstract int setLocalView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
参数类型说明
trackTypeAoqTrackType轨道类型
canvasAoqVideoCanvas视频渲染画布;传 null 表示移除渲染
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。

setRemoteView

设置或移除远端视频渲染窗口。传入 canvas=null 或 canvas.view=null 表示解绑。
public abstract int setRemoteView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
参数类型说明
trackTypeAoqTrackType轨道类型
canvasAoqVideoCanvas视频渲染画布;传 null 表示解绑
返回值:0 表示调用成功;非 0 表示失败。trackType 为 AoqTrackTypeScreen 时返回 AoqECUnSupport,窗口不会绑定。
Screen track 当前仅支持上行,没有远端画面可渲染,因此 trackType 不能传入 AoqTrackTypeScreen。

视频编码与外部输入

setVideoEncoderConfig

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

setVideoDecoderConfig

设置视频解码参数,用于下行拉流的视频解码,按 config.trackType 路由。 仅以下字段生效:trackType, codecType, width, height, fps, bitrate。其余字段仅用于编码。
public abstract int setVideoDecoderConfig(@NonNull AoqVideoCodecConfig config)
参数类型说明
configAoqVideoCodecConfig视频解码配置
返回值:0 表示调用成功;非 0 表示失败。config.trackType 为 AoqTrackTypeScreen 时返回 AoqECUnSupport,配置不会下发。
Screen track 当前仅支持上行,没有下行订阅,因此 config.trackType 不能传入 AoqTrackTypeScreen。

pushExternalVideoCapturedFrame

推送外部原始视频帧,SDK 编码后发送。按 trackType 路由,对应通道需已开启外部采集。
public abstract int pushExternalVideoCapturedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrame frame)
参数类型说明
trackTypeAoqTrackType轨道类型;AoqTrackTypeVideo 需先 startVideoCapture(isExternal=true),AoqTrackTypeScreen 需先 startScreenCapture(isExternal=true)
frameAoqVideoFrame外部视频帧数据
返回值:0 表示调用成功;对应通道未开启外部采集返回 AoqECVideoExternalCaptureNotEnabled(211);< 0 表示失败。 帧数据仅在调用期间有效,SDK 内部会拷贝。

pushExternalVideoEncodedFrame

推送外部已编码视频帧(SDK 不做二次编码,直接打包发送)。仅当对应 trackType 已 setVideoEncoderConfig(isExternal=true) 后才消费,不依赖 startVideoCapture/startScreenCapture。
public abstract int pushExternalVideoEncodedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoEncodedFrame frame)
参数类型说明
trackTypeAoqTrackType轨道类型
frameAoqVideoEncodedFrame外部已编码视频帧
返回值:0 表示调用成功;对应通道未开启外部编码返回 AoqECVideoExternalEncoderNotEnabled(212);< 0 表示失败。
frame.timeStamp 直接透传,SDK 不做补齐;调用方需自行保证时间戳单调递增。
pushExternalVideoCapturedFrame Video 轨道需先调用 startVideoCapture(isExternal=true),Screen 轨道需先调用 startScreenCapture(isExternal=true)。若缓冲区满返回 AoqECVideoExternalBufferFull(210)。

屏幕采集

public abstract int startScreenCapture(@NonNull AoqScreenCaptureConfig config)
public abstract int stopScreenCapture()
trackType 支持 AoqTrackTypeAudio、AoqTrackTypeVideo 和 AoqTrackTypeScreen。 config 为屏幕采集配置。屏幕画面通过 AoqTrackTypeScreen 轨道发送。 启动返回 0 表示请求已受理,最终状态通过 onScreenCaptureStateChanged 通知;非 0 表示同步拒绝。停止返回 0 表示成功,非 0 表示失败,停止结果由该回调通知。 isExternal=false 时通过 MediaProjection 采集;重复启动返回 AoqECStateInvalid,停止可重复调用。 外部原始帧:设置 isExternal=true 后,通过 pushExternalVideoCapturedFrame 输入 Screen 轨道的原始帧,由 SDK 编码。外部已编码帧:先通过 setVideoEncoderConfig 将 Screen 轨道设置为外部编码,再调用 pushExternalVideoEncodedFrame;不需要调用 startScreenCapture。

媒体流发送控制

enableSendMediaStream

控制本地媒体流的发送开关,按 trackType 路由。关闭时 SDK 仍采集/编码但不发送到网络。
public abstract int enableSendMediaStream(@NonNull AoqTrackType trackType, boolean enable)
参数类型说明
trackTypeAoqTrackType轨道类型;支持 AoqTrackTypeAudio/AoqTrackTypeVideo/AoqTrackTypeScreen
enablebooleantrue 表示开启发送;false 表示关闭发送
返回值:0 表示调用成功;< 0 表示失败(对应 AoqErrorCode)。
建议初始化后先 enableSendMediaStream(false),待 onConnectionStatusChange 收到 Connected 后再开启,避免连接建立前的数据丢失。

视频帧回调

setVideoFrameObserver

设置视频帧数据回调监听。传入 listener=null 表示移除监听。
public abstract int setVideoFrameObserver(@Nullable AoqClientListener.AoqVideoFrameListener listener)
参数类型说明
listenerAoqVideoFrameListener视频帧监听接口;传 null 表示移除
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
需先调用本接口设置 listener,再通过 enableVideoFrameObserver 开启具体位置的回调。

enableVideoFrameObserver

开启或关闭指定位置的视频帧回调。
public abstract int enableVideoFrameObserver(boolean enabled, @NonNull AoqVideoSource videoSource, @NonNull AoqVideoObserverConfig config)
参数类型说明
enabledbooleantrue 表示开启;false 表示关闭
videoSourceAoqVideoSource视频源位置;可选采集后/编码前/远端解码后
configAoqVideoObserverConfig回调配置;通过 config.trackType 指定观察 Video 或 Screen 轨道
返回值:0 表示调用成功;非 0 表示失败(对应 AoqErrorCode)。
回调线程为 SDK 内部线程,禁止在回调中执行耗时操作;仅 I420 格式支持读写模式(mode=ReadWrite),其他格式只读。

实时消息

sendDataMsg

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

AoqClientListener 回调

onError

引擎错误回调。发生不可恢复错误时触发。
public void onError(int code, String message)
参数类型说明
codeint错误码,对应 AoqErrorCode 枚举值
messageString错误描述信息
返回值:无(void)。

onWarning

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

onConnectionStatusChange

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

onStats

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

onAudioDeviceStateChanged

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

onAudioDeviceRouteChanged

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

onAudioDeviceInterrupted

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

onScreenCaptureStateChanged

屏幕采集状态变化回调。使用 AoqScreenCaptureStateCode 与统一的 AoqErrorCode,在 Android 主线程按顺序通知。
public void onScreenCaptureStateChanged(@NonNull AoqClientEngine.AoqScreenCaptureState state)
参数类型说明
stateAoqScreenCaptureState屏幕采集状态;包含 state(状态码)和 reason(错误原因)
返回值:无(void)。
Started 表示采集/外部输入已就绪,不表示媒体已发送;Fail 和 Stopped 均为清理完成后的终态;采集失败仅通过本回调报告。

onVideoDeviceStateChanged

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

onAudioDeviceFocusChanged

音频焦点变化回调。
public void onAudioDeviceFocusChanged(int audioFocus)
参数类型说明
audioFocusintAndroid AUDIOFOCUS_* 常量(AUDIOFOCUS_GAIN/AUDIOFOCUS_LOSS/AUDIOFOCUS_LOSS_TRANSIENT 等)
返回值:无(void)。

onAudioFileState

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

onLocalAudioVolumeIndication

本地采集音量提示回调。需调用 enableLocalAudioVolumeIndication 开启后才会触发。
public void onLocalAudioVolumeIndication(@NonNull AoqClientEngine.AoqAudioVolume volume)
参数类型说明
volumeAoqAudioVolume本地音量信息;包含 isSpeech(是否人声)和 volume(平滑后瞬时音量 [0-255])
返回值:无(void)。 AoqClientListener 是 SDK 所有异步事件通知的统一出口。所有回调方法都带有默认空实现,无需强制重写不关心的方法。

onDataMsg

收到实时数据消息回调。
public void onDataMsg(@NonNull AoqClientEngine.AoqDataMsg msg)
参数类型说明
msgAoqDataMsg数据消息
返回值:无(void)。 消息数据仅在回调期间有效,异步使用需自行拷贝。

AoqAudioFrameListener 回调

音频帧数据监听接口。所有方法均为 default 空实现,按需重写。
public interface AoqAudioFrameListener {
    default void onCapturedAudioFrame(@NonNull AoqAudioFrameData frame) {}
    default void onProcessCapturedAudioFrame(@NonNull AoqAudioFrameData frame) {}
    default void onPublishAudioFrame(@NonNull AoqTrackType trackType, @NonNull AoqAudioFrameData frame) {}
    default void onPlaybackAudioFrame(@NonNull AoqAudioFrameData frame) {}
}
方法触发时机参数
onCapturedAudioFrame采集到原始音频帧时frame: AoqAudioFrameData
onProcessCapturedAudioFrame3A 处理后的音频帧frame: AoqAudioFrameData
onPublishAudioFrame推流前的音频帧trackType: 轨道类型;frame: AoqAudioFrameData
onPlaybackAudioFrame播放前的远端音频帧frame: AoqAudioFrameData
返回值:无(void)。 帧数据仅在回调期间有效。

onCapturedAudioFrame

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

onProcessCapturedAudioFrame

3A 处理后的音频帧触发。数据已经过回声消除、降噪等处理。
void onProcessCapturedAudioFrame(@NonNull AoqAudioFrameData frame)
参数类型说明
frameAoqAudioFrameData3A 处理后的音频帧数据
返回值:无(void)。
frame.dataPtr 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

onPublishAudioFrame

推流前的音频帧触发。数据为最终编码发送前的音频。
void onPublishAudioFrame(@NonNull AoqTrackType trackType, @NonNull AoqAudioFrameData frame)
参数类型说明
trackTypeAoqTrackType轨道类型
frameAoqAudioFrameData推流前的音频帧数据
返回值:无(void)。
frame.dataPtr 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

onPlaybackAudioFrame

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

AoqVideoFrameListener 回调

视频帧数据监听接口。所有方法均为 default 实现,返回 false 表示不修改数据。三个回调均带 trackType 参数,用于区分 Video / Screen 轨道。
public interface AoqVideoFrameListener {
    default boolean onCapturedVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
    default boolean onPreEncodeVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
    default boolean onRemoteVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
}
方法触发时机参数
onCapturedVideoFrame采集到原始视频帧时(前处理前)trackType: 轨道类型;frame: AoqVideoFrameData
onPreEncodeVideoFrame编码前的视频帧(前处理后)trackType: 轨道类型;frame: AoqVideoFrameData
onRemoteVideoFrame远端解码后、渲染前的视频帧trackType: 轨道类型;frame: AoqVideoFrameData
返回值:boolean。返回 true 表示数据已修改需写回 SDK(仅 I420 格式写回生效);返回 false 表示不修改。
通过 enableVideoFrameObserver 开启对应 AoqVideoSource 后才会触发;frame.data 与 textureId 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

onCapturedVideoFrame

采集到原始视频帧时触发(前处理前)。
boolean onCapturedVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
参数类型说明
trackTypeAoqTrackType轨道类型(Video/Screen)
frameAoqVideoFrameData采集的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK(仅 I420 格式写回生效),false 表示不修改。
通过 enableVideoFrameObserver 开启对应 AoqVideoSource 后才会触发;frame.data 与 textureId 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

onPreEncodeVideoFrame

编码前的视频帧触发(前处理后)。
boolean onPreEncodeVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
参数类型说明
trackTypeAoqTrackType轨道类型(Video/Screen)
frameAoqVideoFrameData编码前的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK(仅 I420 格式写回生效),false 表示不修改。
通过 enableVideoFrameObserver 开启对应 AoqVideoSource 后才会触发;frame.data 与 textureId 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

onRemoteVideoFrame

远端解码后、渲染前的视频帧触发。
boolean onRemoteVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
参数类型说明
trackTypeAoqTrackType轨道类型(Video/Screen)
frameAoqVideoFrameData远端解码后的视频帧数据
返回值:boolean。true 表示数据已修改需写回 SDK(仅 I420 格式写回生效),false 表示不修改。
通过 enableVideoFrameObserver 开启对应 AoqVideoSource 后才会触发;frame.data 与 textureId 引用 SDK 内部内存,仅在回调期间有效,异步使用需自行拷贝。

数据类型与枚举

通用类型

AoqRelayEndpoint

Relay 接入点。
字段类型默认值说明
routeIndexint-1路由索引
endpointString""Relay 服务器域名或 IP
portint0Relay 服务器 UDP 端口
tcpPortint0Relay 服务器 TCP 端口

AoqTrackParam

Track 属性。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeAudio轨道类型
trackModeAoqTrackModeAoqTrackModeSegment流式与非流式模式,仅对音频下行生效

AoqTrackParam.trackMode

字段类型默认值说明
trackModeAoqTrackModeAoqTrackModeSegment仅对音频下行生效。
AoqCreateConfig
字段类型默认值说明
workDirString""SDK 工作目录
isBTScoModebooleanfalsetrue 蓝牙 SCO 模式;false A2DP 模式
enableDumpAudiobooleanfalse是否开启音频 dump(调试用)
extrasString""扩展参数字符串
maxEncodedVideoFrameBytesint190 × 1024编码后单帧大小上限(字节),仅用于 SDK 内部 JPEG 编码。
enableDropOversizedVideoFramebooleanfalse仅用于 SDK 内部 JPEG 编码:降至最低质量后仍超限时,是否允许丢弃该帧。
AoqConnectConfig subscribeTracks 不能包含 AoqTrackTypeScreen,否则 connect 返回 AoqECUnSupport,不发起连接。setRemoteView 不支持 Screen,传入时返回 AoqECUnSupport。
字段类型默认值说明
tokenString""连接鉴权 Token
sidString""会话 ID
certFingerprintString""服务器证书指纹
relayEndpointsList<AoqRelayEndpoint>空Relay 接入点列表
workspaceIdHashString""工作空间 ID Hash
publishTracksList<AoqTrackParam>空本端发布轨道列表
subscribeTracksList<AoqTrackParam>空本端订阅轨道列表

统计信息类型

AoqNetworkStats
字段类型说明
sendBitrateint发送码率(bps)
sendByteslong累计发送字节数
recvBitrateint接收码率(bps)
recvByteslong累计接收字节数
lossint丢包率(0-100)
rttint往返延迟(ms)

AoqStats

引擎统计信息汇总。SDK 通过 onStats 回调周期性上报。所有字段均可能为 null。
字段类型说明
audioPublishStatsAoqAudioPublishStats 数组音频推流统计数组(@Nullable)
videoPublishStatsAoqVideoPublishStats 数组视频推流统计数组(@Nullable)
dataMsgPublishStatsAoqDataMsgPublishStats 数组数据消息推流统计数组(@Nullable)
audioSubscribeStatsAoqAudioSubscribeStats 数组音频拉流统计数组(@Nullable)
videoSubscribeStatsAoqVideoSubscribeStats 数组视频拉流统计数组(@Nullable)
dataMsgSubscribeStatsAoqDataMsgSubscribeStats 数组数据消息拉流统计数组(@Nullable)
networkStatsAoqNetworkStats网络统计信息(@Nullable)

AoqAudioPublishStats

音频推流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeAudio轨道类型
bitrateint0码率(bps)
byteslong0累计发送字节数
encodeVolumeint0推流编码音量

AoqVideoPublishStats

视频推流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeVideo轨道类型
bitrateint0码率(bps)
byteslong0累计发送字节数
encodeFpsint0编码帧率

AoqDataMsgPublishStats

数据消息推流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeData轨道类型
bitrateint0码率(bps)
byteslong0累计发送字节数

AoqAudioSubscribeStats

音频拉流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeAudio轨道类型
bitrateint0码率(bps)
byteslong0累计接收字节数
playVolumeint0播放音量

AoqVideoSubscribeStats

视频拉流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeVideo轨道类型
bitrateint0码率(bps)
byteslong0累计接收字节数
decodeFpsint0解码帧率
renderFpsint0渲染帧率

AoqDataMsgSubscribeStats

数据消息拉流统计。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeData轨道类型
bitrateint0码率(bps)
byteslong0累计接收字节数

枚举类型

AoqTrackMode

枚举值值说明
AoqTrackModeSegment0分段:按语义片段(如一句话)交付数据;仅对音频下行生效。
AoqTrackModeStream1流式:连续交付数据;仅对音频下行生效。
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
枚举值值说明
AoqEncoderTypeUnknown0未知格式
AoqEncoderTypeAudioPCM1音频 PCM
AoqEncoderTypeAudioOpus2音频 Opus
AoqEncoderTypeVideoH2643视频 H.264
AoqEncoderTypeVideoJpeg4视频 JPEG
AoqEncoderTypeDataText5数据文本
AoqConnectionStatus
枚举值值说明
AoqConnectionStatusDisconnected0未连接
AoqConnectionStatusConnecting1连接中
AoqConnectionStatusConnected2已连接
AoqConnectionStatusFailed3连接失败

AoqMirrorMode

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

AoqOrientationMode

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

音频类型

AoqAudioCaptureConfig
字段类型默认值说明
isExternalbooleanfalse是否为外部采集模式
isVoipModebooleanfalse是否启用 VoIP 模式(影响设备路由,如听筒)
channelint1声道数(默认单声道)
AoqAudioPlaybackConfig
字段类型默认值说明
isVoipModebooleanfalse是否启用 VoIP 模式(硬件 AEC),移动端有效
isDefaultSpeakerbooleantrue是否默认扬声器,移动端有效
isExternalbooleanfalse是否为外部播放模式
channelint1声道数(默认单声道)
AoqAudioCodecConfig
字段类型默认值说明
trackTypeAoqTrackTypeAudio轨道类型
codecTypeAoqEncoderTypeAudioOpus编码格式
sampleRateint48000采样率(Hz)
channelint1声道数
bitrateint32000比特率(bps)

AoqAudioDeviceStateCode

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

AoqAudioDeviceState

音频设备采集播放操作状态。
字段类型默认值说明
stateAoqAudioDeviceStateCodeAoqAudioDeviceNone设备操作状态
reasonint0错误原因代码(参考 AoqErrorCode)

AoqAudioDeviceRouteType

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

音频文件类型

AoqAudioFileMixConfig

音频文件播放配置。
字段类型默认值说明
fileNameString""文件名(含路径),非空
cyclesint-1循环次数,-1 表示无限循环
startPosMslong0起始播放位置(毫秒)
publishVolumeint100推流音量,取值范围 [0-100]
playoutVolumeint100播放音量,取值范围 [0-100]

AoqAudioFileStateCode

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

AoqAudioFileErrorCode

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

AoqAudioFileState

音频文件状态。
字段类型默认值说明
fileIdString""文件标识符
stateCodeAoqAudioFileStateCodeAoqAudioFileNone文件播放状态码
errorCodeAoqAudioFileErrorCodeAoqAudioFileNoError文件错误码

外部音频流与音量类型

AoqAudioExternalStreamToggle

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

AoqAudioFrameData

外部音频帧数据。
字段类型默认值说明
dataPtrbyte 数组null音频 PCM 裸数据(@Nullable)
dataSizeint0PCM 数据字节数
numOfSamplesint0采样点数(单声道)
bytesPerSampleint0每个采样点的字节数
numOfChannelsint0声道数
samplesPerSecint0每秒采样点数(采样率)
pushSequenceint0PCM 输入轮次
timeStamplong0时间戳
autoGenMutebooleanfalse数据回调有效,true 表示 SDK 生成的静音数据

AoqAudioSource

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

AoqAudioObserverMode

音频帧回调模式。
枚举值值说明
AoqAudioObserverModeReadOnly0只读模式
AoqAudioObserverModeReadWrite1读写模式

AoqAudioObserverConfig

音频帧回调配置。
字段类型默认值说明
sampleRateint48000回调音频采样率(Hz)
channelsint1回调音频声道数
modeAoqAudioObserverModeAoqAudioObserverModeReadOnly读写模式

AoqAudioVolumeIndicationConfig

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

AoqAudioVolume

字段类型默认值说明
isSpeechbooleanfalse是否为人声。
volumeint0平滑后的瞬时音量,范围 0~255。

视频类型

AoqRenderMode

渲染显示模式。
枚举值值说明
AoqRenderModeAuto0自适应模式
AoqRenderModeStretch1拉伸模式
AoqRenderModeFill2填充模式
AoqRenderModeCrop3裁剪模式

AoqVideoCanvas

视频渲染画布。
字段类型默认值说明
viewViewnull渲染显示的 Android View(@Nullable)
renderModeAoqRenderModeAoqRenderModeAuto渲染模式

AoqCameraDirection

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

AoqScreenCaptureConfig

字段类型默认值说明
isExternalbooleanfalse是否由应用提供屏幕原始帧。
mediaProjectionIntentIntentnull已有 MediaProjection 授权时传入;null 由 SDK 申请。外部采集时无效。
notificationFactoryAoqScreenShareNotificationFactorynull前台服务通知工厂;null 使用默认通知。外部采集时无效。
AoqVideoCaptureConfig
字段类型默认值说明
widthint1280采集宽度(像素),isExternal=true 时无效
heightint720采集高度(像素),isExternal=true 时无效
fpsint15采集帧率,isExternal=true 时无效
isExternalbooleanfalse是否外部采集,true 时不打开摄像头
cameraDirectionAoqCameraDirectionFront摄像头方向,isExternal=true 时无效
AoqVideoCodecConfig
字段类型默认值说明
trackTypeAoqTrackTypeVideo轨道类型
codecTypeAoqEncoderTypeVideoH264编码格式
widthint540编码宽度(像素)
heightint960编码高度(像素)
fpsint5编码帧率
bitrateint500000目标比特率(bps)
minBitrateint128000最小比特率(bps)
keyframeIntervalint2关键帧间隔(秒)
mirrorModeAoqMirrorModeDisabled镜像模式
orientationModeAoqOrientationModeAuto视频方向模式
isExternalbooleanfalsetrue 时 SDK 不做二次编码,由 pushExternalVideoEncodedFrame 直推
AoqVideoPixelFormat
枚举值值说明
AoqVideoPixelFormatUnknown0未知格式
AoqVideoPixelFormatI4201I420(YUV 三平面格式)
AoqVideoPixelFormatNV122NV12(YUV 半平面格式)
AoqVideoPixelFormatNV213NV21(YUV 半平面格式)
AoqVideoPixelFormatBGRA4BGRA(32 位)
AoqVideoPixelFormatRGBA5RGBA(32 位)
AoqVideoPixelFormatTextureOES7外部 OES 纹理
AoqVideoPixelFormatTexture2D8普通 2D 纹理

AoqVideoFrame

外部视频数据。
字段类型默认值说明
formatAoqVideoPixelFormatAoqVideoPixelFormatUnknown像素格式
widthint0视频宽度(像素)
heightint0视频高度(像素)
databyte 数组null打包格式数据(NV12/NV21/BGRA/RGBA)(@Nullable)
dataYbyte 数组nullI420 Y 平面数据(@Nullable)
dataUbyte 数组nullI420 U 平面数据(@Nullable)
dataVbyte 数组nullI420 V 平面数据(@Nullable)
strideYint0Y 平面行跨度
strideUint0U 平面行跨度
strideVint0V 平面行跨度
textureIdint0纹理 ID(TEXTURE_OES/TEXTURE_2D 时有效)
transformMatrixfloat 数组null4×4 行优先纹理变换矩阵(@Nullable)
eglContextEGLContextnull共享 EGL context(@Nullable)
timeStamplong0时间戳(毫秒);0 时 SDK 用本地时钟补齐

AoqVideoCodecType

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

AoqVideoEncodedFrame

外部已编码视频帧。调用方自行完成编码,SDK 不做二次编码,直接打包发送。
字段类型默认值说明
codecAoqVideoCodecTypeAoqVideoCodecTypeJPEG编码格式
databyte 数组null编码后数据(@Nullable)
widthint0宽度(像素)
heightint0高度(像素)
timeStamplong0时间戳(毫秒);0 时 SDK 用本地时钟补齐

AoqVideoDeviceStateCode

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

AoqVideoDeviceState

视频设备采集操作状态。
字段类型默认值说明
stateAoqVideoDeviceStateCodeAoqVideoDeviceNone设备采集操作状态
reasonint0错误原因代码(参考 AoqErrorCode)
AoqAudioExternalStreamConfig
字段类型默认值说明
trackTypeAoqTrackTypeAudio音频轨道类型
codecTypeAoqEncoderTypeAudioPCM音频流格式
channelsint1声道数
sampleRateint48000采样率(Hz)
playoutVolumeint100播放音量 [0-100]
publishVolumeint100推流音量 [0-100]
maxBufferDurationint1000最大缓冲时长(毫秒)
enable3Abooleanfalse是否对输入 PCM 进行 3A 处理
AoqAudioStreamDirection
枚举值值说明
AoqAudioStreamPublish0发布流(推流)
AoqAudioStreamPlayout1播放流(拉流)

AoqScreenCaptureStateCode

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

AoqScreenCaptureState

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

AoqScreenShareNotificationFactory

public interface AoqScreenShareNotificationFactory {
    @Nullable Notification createNotification(@NonNull Context serviceContext);
}
返回 null 使用 SDK 默认通知。自定义通知关联的 NotificationChannel 必须先通过 createNotificationChannel 创建,否则前台服务启动失败。

视频帧回调类型

AoqVideoSource

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

AoqVideoObserverMode

视频帧回调模式。
枚举值值说明
AoqVideoObserverModeReadOnly0只读模式
AoqVideoObserverModeReadWrite1读写模式

AoqVideoObserverAlignment

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

AoqVideoObserverConfig

视频帧回调配置。
字段类型默认值说明
trackTypeAoqTrackTypeAoqTrackTypeVideo需要观察的视频轨道;仅支持 Video / Screen
formatAoqVideoPixelFormatAoqVideoPixelFormatI420期望回调像素格式
alignmentAoqVideoObserverAlignmentAoqVideoObserverAlignmentDefault宽度对齐策略
modeAoqVideoObserverModeAoqVideoObserverModeReadOnly读写模式,仅 I420 支持读写
mirrorAppliedbooleanfalse是否对回调数据应用镜像

AoqVideoFrameData

视频帧回调数据。byte/texture 字段引用 SDK 内部内存,仅回调期间有效;异步使用请自行拷贝。
字段类型默认值说明
formatAoqVideoPixelFormatAoqVideoPixelFormatUnknown像素格式
widthint0宽度(像素)
heightint0高度(像素)
dataByteBuffernull打包格式数据(NV12/NV21/BGRA/RGBA);direct ByteBuffer 引用 native 内存(@Nullable)
dataYByteBuffernullI420 Y 平面(@Nullable)
dataUByteBuffernullI420 U 平面(@Nullable)
dataVByteBuffernullI420 V 平面(@Nullable)
strideYint0Y 平面行跨度
strideUint0U 平面行跨度
strideVint0V 平面行跨度
textureIdint0纹理 ID(TEXTURE_OES/TEXTURE_2D 时有效)
transformMatrixfloat 数组null4×4 行优先纹理变换矩阵(TEXTURE_OES/TEXTURE_2D 时有效)(@Nullable)
timeStamplong0时间戳(毫秒)

数据消息类型

AoqDataMsg
字段类型默认值说明
databyte[]new byte[0]消息数据(字节数组)