BRTCListener 用于给 SDK 调用者返回 SDK 接口调用的执行结果、消息、内部工作状态等回调通知,方便 SDK 调用者结合具体的业务场景进行相应处理。
以下函数按照名称首字母升序排列
onError错误事件,表示 SDK 抛出的不可恢复的错误,比如进入房间失败或设备开启失败等。
void onError(int errCode, String errMsg, Bundle extraInfo)
参数
onEnterRoom已加入房间的回调
void onEnterRoom(long result)
详情
onExitRoom离开房间的事件回调
void onExitRoom(int reason)
onRemoteUserEnterRoom有用户加入当前房间
void onRemoteUserEnterRoom(String userId)
onRemoteUserLeaveRoom有用户离开当前房间
void onRemoteUserLeaveRoom(String userId, int reason)
onUserVideoAvailable远端用户是否存在可播放的主路画面(一般用于摄像头)
void onUserVideoAvailable(String userId, boolean available)
收到 onUserVideoAvailable(userid, true) 通知时,表示该路画面已经有可用的视频数据帧到达,此时,您需要调用 startRemoteView 接口加载该用户的远程画面。
收到 onUserVideoAvailable(userid, false) 通知时,表示该路远程画面已被关闭,可能由于您主动 mute 了该用户的视频,或者该用户关闭了自己的视频
自动订阅模式下,收到此通知表示远端用户的视频流已经到达并会被自动拉取并解码 手动订阅模式下,收到此通知表示远端用户的视频流已经可用,但还需要主动触发订阅才会拉取
onUserAudioAvailable远端用户是否存在可播放的音频数据
void onUserAudioAvailable(String userId, boolean available)
自动订阅模式下,收到此通知表示远端用户的音频流已经到达并会被自动拉取并解码播放 手动订阅模式下,收到此通知表示远端用户的音频流已经可用,但还需要主动触发订阅才能解码播放
onUserSubStreamAvailable端用户的辅流(通常是屏幕共享)的可用或不可用状态发生状态变化时通知
void onUserSubStreamAvailable(String userId, boolean available)
“辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, true) 通知时,表示该路画面已经有可用的视频数据帧到达。您可以调用 startRemoteView 传入 BRTCVideoStreamTypeSub 类型来请求预览。
onFirstVideoFrame开始渲染本地或远程用户的首帧画面
void onFirstVideoFrame(String userId, BRTCVideoStreamType type, int width, int height)
onLocalVideoFallback本地流视频回退或者恢复
void onLocalVideoFallback(boolean isFallback)
当检测到用户上行网络条件变差,无法满足原有视频流带宽需求时,SDK会自动关闭视频流,保留音频流。当视频流自动关闭和恢复时,您会通过此回调收到通知。您可以通过接口 setVideoFallbackEnable 来设置是否启用视频流自动回退机制。
onFirstAudioFrame已接收到某个远端用户的音频首帧的回调
void onFirstAudioFrame(String userId)
onSendFirstLocalVideoFrame首帧本地视频数据已经被送出
void onSendFirstLocalVideoFrame(BRTCVideoStreamType type)
onSendFirstLocalAudioFrame首帧本地音频数据已经被送出
void onSendFirstLocalAudioFrame()
onSwitchRole切换角色的结果回调
void onSwitchRole(int errCode, String errMsg)
onStatistics音视频相关的度量指标统计回调
void onStatistics(BRTCStatistics statics)
onNetworkQuality推、拉流质量回调,每 2 秒回调一次。此回调从 3.8.0 版本开始提供。
void onNetworkQuality(@NonNull ArrayList<BRTCDef.BRTCNetworkQualityInfo> networkQualityInfos)
onUserVoiceVolume音量大小的反馈回调
void onUserVoiceVolume(ArrayList<BRTCDef.BRTCVolumeInfo> userVolumes, int totalVolume)
onConnectionLostSDK 跟服务器的连接断开
void onConnectionLost()
您收到这个回调后,通常情况下不需要进行额外的处理。因为 SDK 内部会自动发起重连并尝试进行恢复。
onTryToReconnectSDK 尝试重新连接到服务器
void onTryToReconnect()
onConnectionRecoverySDK 跟服务器的连接恢复
void onConnectionRecovery()
onRecvCustomCmdMsg收到自定义消息回调
void onRecvCustomCmdMsg(String userId, int cmdID, int seq, byte[] message)
onRecvSEIMsg收到 SEI 消息的回调
void onRecvSEIMsg(String userId, byte[] data)
onScreenCaptureStarted当屏幕分享开始时,SDK 会通过此回调通知
void onScreenCaptureStarted()
onScreenCapturePaused当屏幕分享暂停时,SDK 会通过此回调通知
void onScreenCapturePaused()
onScreenCaptureResumed当屏幕分享恢复时,SDK 会通过此回调通知
void onScreenCaptureResumed()
onScreenCaptureStoped当屏幕分享停止时,SDK 会通过此回调通知
void onScreenCaptureStoped(int reason)
onLog日志打印回调
void onLog(String log, int level, String module)
onSnapShotVideo视频截图的回调
void onSnapShotVideo(String userId, Bitmap bitmap)
onGLContextCreatedSDK 内部的 OpenGL 环境的创建通知
void onGLContextCreated();
参数 无
onGLContextDestroySDK 内部的 OpenGL 环境的销毁通知
void onGLContextDestroy();
onProcessVideoFrame本地视频帧数据回调
int onProcessVideoFrame(@NonNull final BRTCVideoFrame srcFrame, @NonNull BRTCVideoFrame dstFrame);
当您调用 setLocalVideoProcessListener 接口之后,SDK 会通过此回调方法将编码前的视频帧数据回调给您。您可以读取源视频帧数据进行处理(如截图、交付第三方美颜 SDK等),然后再填充到目标视频帧数据中即可。
onCapturedRawAudioFrame本地采集并经过音频模块前处理后的音频数据回调
void onCapturedRawAudioFrame(BRTCDef.BRTCAudioFrame audioFrame)
当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
采样率 x 帧时长 x 声道数 x 采样点位宽
请千万不要在此回调函数中做任何耗时操作! 由于 SDK 每隔 10ms 就要处理一帧音频数据,如果您的处理时间超过 10ms,就会导致声音异常。 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
请千万不要在此回调函数中做任何耗时操作!
由于 SDK 每隔 10ms 就要处理一帧音频数据,如果您的处理时间超过 10ms,就会导致声音异常。
此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
SDK 2.2 版本开始提供此回调
onLocalProcessedAudioFrame本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调
void onLocalProcessedAudioFrame(BRTCDef.BRTCAudioFrame audioFrame)
当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理、音效处理和混 BGM 之后的数据,在最终进行网络编码之前,以 PCM 格式的形式通过本接口回调给您。其他音频格式的说明同 onCapturedRawAudioFrame
Android
BRTCListener 用于给 SDK 调用者返回 SDK 接口调用的执行结果、消息、内部工作状态等回调通知,方便 SDK 调用者结合具体的业务场景进行相应处理。
BRTCListener
以下函数按照名称首字母升序排列
BRTCLogListener
BRTCSnapShotListener
BRTCVideoFrameListener
BRTCAudioFrameListener
详细信息
onError
错误事件,表示 SDK 抛出的不可恢复的错误,比如进入房间失败或设备开启失败等。
参数
onEnterRoom
已加入房间的回调
参数
详情
onExitRoom
离开房间的事件回调
参数
详情
onRemoteUserEnterRoom
有用户加入当前房间
参数
详情
onRemoteUserLeaveRoom
有用户离开当前房间
参数
onUserVideoAvailable
远端用户是否存在可播放的主路画面(一般用于摄像头)
参数
详情
收到 onUserVideoAvailable(userid, true) 通知时,表示该路画面已经有可用的视频数据帧到达,此时,您需要调用 startRemoteView 接口加载该用户的远程画面。
收到 onUserVideoAvailable(userid, false) 通知时,表示该路远程画面已被关闭,可能由于您主动 mute 了该用户的视频,或者该用户关闭了自己的视频
onUserAudioAvailable
远端用户是否存在可播放的音频数据
参数
onUserSubStreamAvailable
端用户的辅流(通常是屏幕共享)的可用或不可用状态发生状态变化时通知
参数
详情
“辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, true) 通知时,表示该路画面已经有可用的视频数据帧到达。您可以调用 startRemoteView 传入 BRTCVideoStreamTypeSub 类型来请求预览。
onFirstVideoFrame
开始渲染本地或远程用户的首帧画面
参数
详情
onLocalVideoFallback
本地流视频回退或者恢复
参数
详情
当检测到用户上行网络条件变差,无法满足原有视频流带宽需求时,SDK会自动关闭视频流,保留音频流。当视频流自动关闭和恢复时,您会通过此回调收到通知。您可以通过接口 setVideoFallbackEnable 来设置是否启用视频流自动回退机制。
onFirstAudioFrame
已接收到某个远端用户的音频首帧的回调
参数
onSendFirstLocalVideoFrame
首帧本地视频数据已经被送出
参数
详情
onSendFirstLocalAudioFrame
首帧本地音频数据已经被送出
详情
onSwitchRole
切换角色的结果回调
参数
onStatistics
音视频相关的度量指标统计回调
参数
详情
onNetworkQuality
推、拉流质量回调,每 2 秒回调一次。此回调从 3.8.0 版本开始提供。
参数
onUserVoiceVolume
音量大小的反馈回调
参数
详情
onConnectionLost
SDK 跟服务器的连接断开
onTryToReconnect
SDK 尝试重新连接到服务器
onConnectionRecovery
SDK 跟服务器的连接恢复
onRecvCustomCmdMsg
收到自定义消息回调
参数
详情
onRecvSEIMsg
收到 SEI 消息的回调
参数
详情
onScreenCaptureStarted
当屏幕分享开始时,SDK 会通过此回调通知
onScreenCapturePaused
当屏幕分享暂停时,SDK 会通过此回调通知
onScreenCaptureResumed
当屏幕分享恢复时,SDK 会通过此回调通知
onScreenCaptureStoped
当屏幕分享停止时,SDK 会通过此回调通知
参数
onLog
日志打印回调
参数
onSnapShotVideo
视频截图的回调
参数
onGLContextCreated
SDK 内部的 OpenGL 环境的创建通知
参数 无
onGLContextDestroy
SDK 内部的 OpenGL 环境的销毁通知
参数 无
onProcessVideoFrame
本地视频帧数据回调
参数
详情
当您调用 setLocalVideoProcessListener 接口之后,SDK 会通过此回调方法将编码前的视频帧数据回调给您。您可以读取源视频帧数据进行处理(如截图、交付第三方美颜 SDK等),然后再填充到目标视频帧数据中即可。
onCapturedRawAudioFrame
本地采集并经过音频模块前处理后的音频数据回调
参数
详情
当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
采样率 x 帧时长 x 声道数 x 采样点位宽
,例如以 48KHz 采样率、单声道、16bit 采样点位宽为例,音频帧大小为: 48000 x 0.01(秒) x 1 x 16(比特) = 7680比特 = 960字节onLocalProcessedAudioFrame
本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调
参数
详情
当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理、音效处理和混 BGM 之后的数据,在最终进行网络编码之前,以 PCM 格式的形式通过本接口回调给您。其他音频格式的说明同 onCapturedRawAudioFrame