类型: interface
API
| 名称 | 描述 |
|---|---|
| onRoomStateChanged() | 房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。 |
| onStreamStateChanged() | 流状态改变回调,发生流相关的警告或错误时会收到此回调。 |
| onLeaveRoom() | 离开房间成功回调。 |
| onUserJoined() | 可见用户加入房间,或房内隐身用户切换为可见的回调。 1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。 3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。 |
| onUserLeave() | 远端用户离开房间,或切至不可见时,本地用户会收到此事件 |
| onTokenWillExpire() | Token 过期前 30 秒将触发该回调。 |
| onAVSyncStateChange() | 发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。 |
| onRoomStats() | 房间通话统计信息回调。 用户进房开始通话后,每 2s 收到一次本回调。 |
| onLocalStreamStats() | 反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。 本地用户发布音视频流成功后,每隔 2s 收到此回调。 |
| onRemoteStreamStats() | 反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。 |
| onUserPublishStream() | 房间内新增远端麦克风采集的音频流的回调。 |
| onUserUnpublishStream() | 房间内远端麦克风采集的音频流移除的回调。 |
| onUserPublishScreen() | 房间内新增远端屏幕共享音视频流的回调。 |
| onUserUnpublishScreen() | 房间内远端屏幕共享音视频流移除的回调。 |
| onStreamSubscribed() | 关于订阅媒体流状态改变的回调 |
| onVideoStreamBanned() | 通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。 |
| onAudioStreamBanned() | 通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。 |
| onRoomMessageReceived() | 接收到房间内广播消息的回调。 |
| onRoomBinaryMessageReceived() | 接收到房间内广播二进制消息的回调。 |
| onUserMessageReceived() | 收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。 |
| onUserBinaryMessageReceived() | 收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。 |
| onUserMessageSendResult() | 向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。 |
| onRoomMessageSendResult() | 调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。 |
| onForwardStreamStateChanged() | 跨房间媒体流转发状态和错误回调 |
| onForwardStreamEvent() | 跨房间媒体流转发事件回调 |
| onRangeAudioInfo() | 关于当前范围语音衰减系数的回调。 你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。 |
| onNetworkQuality() | 加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息 |
房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。
类型
(room_id: string, uid: string, state: number, extra_info: string) => void
ts参数
room_id
类型: string
房间 ID。
uid
类型: string
用户 ID。
state
类型: number
房间状态码。
+ 0: 成功。
+ !0: 失败,参看 ErrorCode 及 WarningCode。
extra_info
类型: string
额外信息。joinType表示加入房间的类型,0为首次进房,1为重连进房。elapsed表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。
流状态改变回调,发生流相关的警告或错误时会收到此回调。
类型
(room_id: string, uid: string, state: number, extra_info: string) => void
ts参数
room_id
类型: string
房间 ID。
uid
类型: string
用户 ID。
state
类型: number
流状态码,参看 ErrorCode 及 WarningCode。
extra_info
类型: string
附加信息,目前为空。
离开房间成功回调。
类型
(stats: RtcRoomStats) => void
ts注意
参数
stats
类型: RtcRoomStats
本次通话的统计数据。
可见用户加入房间,或房内隐身用户切换为可见的回调。
1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。
类型
(user_info: UserInfo, elapsed: number) => void
ts参数
user_info
类型: UserInfo
用户信息。
elapsed
类型: number
主播角色用户调用 joinRoom 加入房间到房间内其他用户收到该事件经历的时间,单位为 ms。
远端用户离开房间,或切至不可见时,本地用户会收到此事件
类型
(uid: string, reason: UserOfflineReasonType) => void
ts参数
uid
类型: string
离开房间,或切至不可见的的远端用户 ID。
reason
用户离开房间的原因
Token 过期前 30 秒将触发该回调。
类型
() => void
ts注意
调用 updateToken 更新 Token。否则 Token 过期后,用户将被移出房间无法继续进行音视频通话。
发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。
类型
(state: AVSyncState) => void
ts参数
state
类型: AVSyncState
音视频同步状态
房间通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。
类型
(stats: RtcRoomStats) => void
ts参数
stats
类型: RtcRoomStats
房间内的汇总统计数据。
反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。
本地用户发布音视频流成功后,每隔 2s 收到此回调。
类型
(stats: LocalStreamStats) => void
ts参数
stats
类型: LocalStreamStats
音视频流以及网络状况统计信息。
反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。
类型
(stats: RemoteStreamStats) => void
ts参数
stats
音视频流以及网络状况统计信息。
房间内新增远端麦克风采集的音频流的回调。
类型
(uid: string, type: MediaStreamType) => void
ts注意
当房间内的远端用户调用 publishStream 成功发布由麦克风采集的音频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
参数
uid
类型: string
远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型。
房间内远端麦克风采集的音频流移除的回调。
类型
(uid: string, type: MediaStreamType, reason: StreamRemoveReason) => void
ts注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。
参数
uid
类型: string
移除的远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型。
reason
远端流移除的原因
房间内新增远端屏幕共享音视频流的回调。
类型
(uid: string, type: MediaStreamType) => void
ts注意
当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。
参数
uid
类型: string
远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型
房间内远端屏幕共享音视频流移除的回调。
类型
(uid: string, type: MediaStreamType, reason: StreamRemoveReason) => void
ts注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeScreen 取消订阅此流。
参数
uid
类型: string
移除的远端流发布用户的用户 ID。
type
类型: MediaStreamType
移除的远端流类型
reason
远端流移除的原因
关于订阅媒体流状态改变的回调
类型
(state_code: SubscribeState, user_id: string, info: SubscribeConfig) => void
ts注意
本地用户收到该回调的时机包括:
参数
state_code
类型: SubscribeState
订阅媒体流状态
user_id
类型: string
流发布用户的用户 ID
info
类型: SubscribeConfig
流的属性
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
类型
(uid: string, banned: boolean) => void
ts注意
参数
uid
类型: string
被禁用/解禁的视频流用户 ID
banned
类型: boolean
视频流发送状态
+ true: 视频流发送被禁用
+ false: 视频流发送被解禁
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。
类型
(uid: string, banned: boolean) => void
ts注意
参数
uid
类型: string
被禁用/解禁的音频流用户 ID
banned
类型: boolean
音频流发送状态
+ true: 音频流发送被禁用
+ false: 音频流发送被解禁
接收到房间内广播消息的回调。
类型
(uid: string, message: string) => void
ts注意
房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。
参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的消息内容
接收到房间内广播二进制消息的回调。
类型
(uid: string, message: string) => void
ts注意
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的二进制消息内容
收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
类型
(uid: string, message: string) => void
ts参数
uid
类型: string
消息发送者的用户 ID 。
message
类型: string
收到的文本消息内容。
收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
类型
(uid: string, message: string) => void
ts参数
uid
类型: string
消息发送者的用户 ID 。
message
类型: string
收到的二进制消息内容。
向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。
类型
(msgid: number, error: number) => void
ts注意
调用 sendUserMessage 或 sendUserBinaryMessage 接口,才能收到此回调。
参数
msgid
类型: number
本条消息的 ID。
error
类型: number
文本或二进制消息发送结果
+ 200: 消息发送成功
+ 100: 失败,发送方未加入房间
+ 102: 失败,没有可用的数据传输通道连接
+ 103: 失败,消息超过最大长度,当前为 64 KB
+ 1000: 失败,未知错误
调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
类型
(msgid: number, error: number) => void
ts参数
msgid
类型: number
本条消息的 ID。
error
类型: number
消息发送结果
+ 200: 消息发送成功
+ 100: 失败,发送方未加入房间
+ 102: 失败,没有可用的数据传输通道连接
+ 103: 失败,消息超过最大长度,当前为 64 KB
+ 1000: 失败,未知错误
跨房间媒体流转发状态和错误回调
类型
(infos: ForwardStreamStateInfo[], info_count: number) => void
ts参数
infos
类型: ForwardStreamStateInfo[]
跨房间媒体流转发目标房间信息数组
info_count
类型: number
数量
跨房间媒体流转发事件回调
类型
(infos: ForwardStreamEventInfo[], info_count: number) => void
ts参数
infos
类型: ForwardStreamEventInfo[]
跨房间媒体流转发目标房间事件数组
info_count
类型: number
数量
关于当前范围语音衰减系数的回调。
你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。
类型
(range_audio_info: RangeAudioInfo, len: number) => void
ts注意
参数
range_audio_info
类型: RangeAudioInfo
包含范围语音流信息的数组
len
类型: number
范围语音流信息数组长度
加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息
类型
(localQuality: NetworkQualityStats, remoteQualities: NetworkQualityStats[]) => void
ts注意
更多通话中的监测接口,详见通话中质量监测
参数
localQuality
本地网络质量。
remoteQualities
类型: NetworkQualityStats[]
已订阅用户的网络质量。
类型: interface
API
| 名称 | 描述 |
|---|---|
| onLogReport() | 端监控日志回调。当产生一个端监控事件时触发该回调。 |
| onFirstPublicStreamAudioFrame() | 公共流的音频首帧解码成功 关于订阅公共流,详见 startPlayPublicStream。 |
| onPushPublicStreamResult() | 公共流的音频首帧解码成功 |
| onFirstPublicStreamVideoFrameDecoded() | 公共流的首帧视频解码成功 关于订阅公共流,详见 startPlayPublicStream。 |
| onPublicStreamSEIMessageReceived() | 回调公共流中包含的 SEI 信息 通过 startPlayPublicStream 开始播放公共流后,可以通过本回调获取公共流中包含的 SEI 信息。 |
| onPlayPublicStreamResult() | 订阅公共流的结果回调 通过 startPlayPublicStream 订阅公共流后,可以通过本回调获取订阅结果。 |
| onLocalScreenFrame() | 获取采集成功的本地屏幕视频帧,用于自定义处理或渲染。 |
| onLocalVideoFrame() | 获取采集成功的本地摄像头流视频帧,用于自定义处理或渲染。 |
| onRemoteScreenFrame() | 视频管理获取采集成功的远端屏幕视频帧,用于自定义处理或渲染。 |
| onRemoteVideoFrame() | 获取采集成功的远端摄像头流视频帧,用于自定义处理或渲染。 |
| onPublicStreamVideoFrame() | 公共流视频数据回调,绑定公共流到自定义渲染器后,通过该回调获取公共流视频数据。 |
| onWarning() | 当内部发生警告事件时触发该回调 |
| onError() | 当内部发生不可逆转错误时触发该回调 |
| onAudioMixingFinished() | 本地音乐文件播放已结束回调。 |
| onAudioMixingStateChanged() | 音频混音文件播放状态改变时回调 |
| onAudioMixingPlayingProgress() | 混音音频文件播放进度回调 |
| onConnectionStateChanged() | SDK 与信令服务器连接状态改变回调。连接状态改变时触发。 |
| onNetworkTypeChanged() | SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。 |
| onPerformanceAlarms() | 本地未开启发布性能回退,检测到设备性能不足时,收到此回调。本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。 |
| onSysStats() | 周期性地发出回调,报告当前cpu与memory使用率 |
| onUserStartAudioCapture() | 房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。 |
| onUserStopAudioCapture() | 房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。 |
| onFirstLocalAudioFrame() | 本地采集到第一帧音频帧时,收到该回调 |
| onFirstRemoteAudioFrame() | 收到房间内每一路音频流的第一帧时,收到该回调。 |
| onSimulcastSubscribeFallback() | 因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。 |
| onFirstLocalVideoFrameCaptured() | 第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。 |
| onLocalVideoSizeChanged() | 本地视频大小或旋转配置发生改变时,收到此回调。 |
| onRemoteVideoSizeChanged() | 远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。 |
| onFirstRemoteVideoFrameRendered() | 第一帧远端视频流在视图上渲染成功后,收到此回调。 |
| onFirstRemoteVideoFrameDecoded() | SDK 接收并解码远端视频流首帧后,收到此回调。 |
| onUserStartVideoCapture() | 房间内的用户调用 startVideoCapture 开启视频采集时,房间内其他用户会收到此回调。 |
| onUserStopVideoCapture() | 房间内的用户调用 stopVideoCapture 关闭视频采集时,房间内其他用户会收到此回调。 |
| onLocalAudioStateChanged() | 本地音频的状态发生改变时,该回调通知当前的本地音频状态。 |
| onRemoteAudioStateChanged() | 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。 |
| onActiveSpeaker() | 调用 enableAudioPropertiesReport 后,根据设置的 config.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。 |
| onLocalVideoStateChanged() | 本地视频流的状态发生改变时,收到该事件。 |
| onRemoteVideoStateChanged() | 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。 |
| onAudioFrameSendStateChanged() | 音频首帧发送状态改变回调 |
| onVideoFrameSendStateChanged() | 视频首帧发送状态改变回调 |
| onScreenVideoFrameSendStateChanged() | 屏幕共享流视频首帧发送状态改变回调 |
| onAudioFramePlayStateChanged() | 音频首帧播放状态改变回调 |
| onVideoFramePlayStateChanged() | 视频首帧播放状态改变回调 |
| onScreenVideoFramePlayStateChanged() | 屏幕共享流视频首帧播放状态改变回调 |
| onUserMessageSendResult() | 当调用 sendMessageToUser 函数发送消息后,回调此条消息的发送结果(反馈)。 |
| onUserBinaryMessageReceived() | 单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。 |
| onStreamSubscribed() | 当订阅一个流成功的时候回调该事件 |
| onSEIMessageReceived() | 收到通过 sendSEIMessage 发送的带有 SEI 消息的视频帧时,收到此回调 |
| onStreamMixingEvent() | 通知转推直播关键事件 |
| onStreamPushEvent() | 单流转推直播状态回调 |
| onRecordingStateUpdate() | 获取本地录制状态回调。 |
| onRecordingProgressUpdate() | 本地录制进度回调。 |
| onLoginResult() | 调用 login 后,会收到此回调。 |
| onLogout() | 登出结果回调 |
| onServerParamsSetResult() | 设置业务服务器参数的返回结果 |
| onGetPeerOnlineStatus() | 查询对端或本端用户登录状态的返回结果 |
| onUserMessageReceivedOutsideRoom() | 收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调 |
| onUserBinaryMessageReceivedOutsideRoom() | 收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调 |
| onUserMessageSendResultOutsideRoom() | 给房间外指定的用户发送消息的回调 |
| onServerMessageSendResult() | 给业务服务器发送消息的回调 |
| onRecordAudioFrame() | 返回麦克风录制的音频数据 |
| onPlaybackAudioFrame() | 返回远端所有用户混音后的音频数据 |
| onMixedAudioFrame() | 返回本地麦克风录制和远端所有用户混音后的音频数据 |
| onASRSuccess() | 语音识别服务开启成功回调 |
| onMessage() | 语音转文字成功回调,该回调返回识别后的全量消息。 |
| onASRError() | 当语音识别服务内部发生错误事件时触发该回调。 |
| onNetworkDetectionResult() | 成功调用 startNetworkDetection 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。 |
| onNetworkDetectionStopped() | 通话前网络探测结束 |
| onLocalAudioPropertiesReport() | 调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。 |
| onRemoteAudioPropertiesReport() | 远端用户进房后,本地调用 enableAudioPropertiesReport,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。 |
| onEchoTestResult() | 通话前网络探测结束 |
| onVideoDeviceStateChanged() | 视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。 |
| onAudioDeviceStateChanged() | 音频设备状态回调。提示音频采集、音频播放等设备设备的状态。 |
| onAudioPlaybackDeviceTestVolume() | 回调音频设备测试时的播放音量 |
端监控日志回调。当产生一个端监控事件时触发该回调。
类型
(log_type: string, log_content: string) => void
ts参数
log_type
类型: string
事件类型。目前类型固定为 "live_webrtc_monitor_log"。
log_content
类型: string
端监控日志内容。
公共流的音频首帧解码成功
关于订阅公共流,详见 startPlayPublicStream。
类型
(public_stream_id: string) => void
ts参数
public_stream_id
类型: string
公共流 ID
公共流的音频首帧解码成功
类型
(room_id: string, public_stream_id: string, error_code: number) => void
ts注意
关于订阅公共流,详见 startPlayPublicStream。
参数
room_id
类型: string
房间 ID。
public_stream_id
类型: string
公共流 ID
error_code
类型: number
错误码
公共流的首帧视频解码成功
关于订阅公共流,详见 startPlayPublicStream。
类型
(public_stream_id: string, video_frame_info: VideoFrameInfo) => void
ts注意
关于订阅公共流,详见 startPlayPublicStream。
参数
public_stream_id
类型: string
公共流 ID
video_frame_info
类型: VideoFrameInfo
视频帧信息。
回调公共流中包含的 SEI 信息
通过 startPlayPublicStream 开始播放公共流后,可以通过本回调获取公共流中包含的 SEI 信息。
类型
(public_stream_id: string, message: string) => void
ts注意
当公共流中的多路视频流均包含有 SEI 信息时:
SEI 不互相冲突时,将通过多次回调分别发送;
SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。
参数
public_stream_id
类型: string
公共流 ID
message
类型: string
SEI 信息
订阅公共流的结果回调
通过 startPlayPublicStream 订阅公共流后,可以通过本回调获取订阅结果。
类型
(public_stream_id: string, error_code: number) => void
ts参数
public_stream_id
类型: string
公共流的 ID
error_code
类型: number
公共流订阅结果状态码。
获取采集成功的本地屏幕视频帧,用于自定义处理或渲染。
类型
(frame: IVideoFrame) => void
ts参数
frame
类型: IVideoFrame
视频数据
获取采集成功的本地摄像头流视频帧,用于自定义处理或渲染。
类型
(frame: IVideoFrame) => void
ts参数
frame
类型: IVideoFrame
视频数据
视频管理获取采集成功的远端屏幕视频帧,用于自定义处理或渲染。
类型
(frame: IVideoFrame) => void
ts参数
frame
类型: IVideoFrame
视频数据
获取采集成功的远端摄像头流视频帧,用于自定义处理或渲染。
类型
(frame: IVideoFrame) => void
ts注意
不同的平台上(macOS, Windows, Linux)上获取的视频帧的 pixelFormat 可能不同。
参数
frame
类型: IVideoFrame
视频数据
公共流视频数据回调,绑定公共流到自定义渲染器后,通过该回调获取公共流视频数据。
类型
(frame: IVideoFrame) => void
ts参数
frame
类型: IVideoFrame
视频数据
当内部发生警告事件时触发该回调
类型
(warn: WarningCode) => void
ts参数
warn
类型: WarningCode
警告标识码
当内部发生不可逆转错误时触发该回调
类型
(error_code: ErrorCode, error_message: string) => void
ts参数
error_code
类型: ErrorCode
错误标识码
error_message
类型: string
错误详情
本地音乐文件播放已结束回调。
类型
() => void
ts注意
当调用 startAudioMixing 启动的混音文件播放结束后,会触发该回调。
音频混音文件播放状态改变时回调
类型
(id: number, state: AudioMixingState, error: AudioMixingError) => void
ts注意
参数
id
类型: number
混音 ID
state
类型: AudioMixingState
混音状态
error
类型: AudioMixingError
错误码
混音音频文件播放进度回调
类型
(mix_id: number, progress: number) => void
ts注意
调用 setAudioMixingProgressInterval 将时间间隔设为大于 0 的值后,或调用 startAudioMixing 将 AudioMixingConfig 中的时间间隔设为大于 0 的值后,SDK 会按照设置的时间间隔回调该事件。
参数
mix_id
类型: number
混音 ID
progress
类型: number
当前混音音频文件播放进度,单位毫秒
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
类型
(state: ConnectionState) => void
ts参数
state
类型: ConnectionState
当前 SDK 与信令服务器的连接状态
SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
类型
(type: NetworkType) => void
ts注意
更多信息参见 连接状态提示。
参数
type
类型: NetworkType
SDK 当前的网络连接类型
本地未开启发布性能回退,检测到设备性能不足时,收到此回调。本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
类型
(mode: PerformanceAlarmMode, room_id: string, reason: PerformanceAlarmReason, data: SourceWantedData) => void
ts参数
mode
指示本地是否开启发布回退功能
room_id
类型: string
reason
告警原因
data
类型: SourceWantedData
性能回退相关数据
周期性地发出回调,报告当前cpu与memory使用率
类型
(stats: SysStats) => void
ts参数
stats
类型: SysStats
返回包含当前系统状态信息的结构体
房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
类型
(room_id: string, user_id: string) => void
ts参数
room_id
类型: string
开启音频采集的远端用户所在的房间 ID
user_id
类型: string
开启音频采集的远端用户 ID
房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
类型
(room_id: string, user_id: string) => void
ts参数
room_id
类型: string
关闭音频采集的远端用户所在的房间 ID
user_id
类型: string
关闭音频采集的远端用户 ID
本地采集到第一帧音频帧时,收到该回调
类型
(index: StreamIndex) => void
ts参数
index
类型: StreamIndex
音频流属性
收到房间内每一路音频流的第一帧时,收到该回调。
类型
(key: RemoteStreamKey) => void
ts参数
key
类型: RemoteStreamKey
远端音频流信息
因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。
类型
(stream: RemoteStreamSwitch) => void
ts注意
你必须先通过 API 或控制台设置音视频流订阅回退功能时,你才能收到此回调。
参数
stream
流切换信息
第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。
类型
(index: StreamIndex, info: VideoFrameInfo) => void
ts参数
index
类型: StreamIndex
流属性
info
类型: VideoFrameInfo
视频信息
本地视频大小或旋转配置发生改变时,收到此回调。
类型
(index: StreamIndex, info: VideoFrameInfo) => void
ts参数
index
类型: StreamIndex
流属性
info
类型: VideoFrameInfo
视频帧信息
远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。
类型
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
ts参数
key
类型: RemoteStreamKey
远端流信息
stream
类型: VideoFrameInfo
视频帧信息
第一帧远端视频流在视图上渲染成功后,收到此回调。
类型
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
ts参数
key
类型: RemoteStreamKey
远端流信息
stream
类型: VideoFrameInfo
视频帧信息
SDK 接收并解码远端视频流首帧后,收到此回调。
类型
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
ts参数
key
类型: RemoteStreamKey
远端流信息。
stream
类型: VideoFrameInfo
视频帧信息。
房间内的用户调用 startVideoCapture 开启视频采集时,房间内其他用户会收到此回调。
类型
(room_id: string, user_id: string) => void
ts参数
room_id
类型: string
开启视频采集的远端用户所在的房间 ID
user_id
类型: string
开启视频采集的远端用户 ID
房间内的用户调用 stopVideoCapture 关闭视频采集时,房间内其他用户会收到此回调。
类型
(room_id: string, user_id: string) => void
ts参数
room_id
类型: string
关闭视频采集的远端用户所在的房间 ID
user_id
类型: string
关闭视频采集的远端用户 ID
本地音频的状态发生改变时,该回调通知当前的本地音频状态。
类型
(state: LocalAudioStreamState, error: LocalAudioStreamError) => void
ts参数
state
本地音频设备的状态
error
本地音频状态改变时的错误码
用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
类型
(key: RemoteStreamKey, state: RemoteAudioState, reason: RemoteAudioStateChangeReason) => void
ts参数
key
类型: RemoteStreamKey
远端流信息
state
类型: RemoteAudioState
远端音频流状态
reason
类型: RemoteAudioStateChangeReason
远端音频流状态改变的原因
调用 enableAudioPropertiesReport 后,根据设置的 config.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。
类型
(room_id: string, uid: string) => void
ts参数
room_id
类型: string
房间 ID
uid
类型: string
最活跃用户(ActiveSpeaker)的用户 ID
本地视频流的状态发生改变时,收到该事件。
类型
(index: StreamIndex, state: LocalVideoStreamState, error: LocalVideoStreamError) => void
ts参数
index
类型: StreamIndex
音/视频属性
state
本地视频流状态
error
本地视频状态改变时的错误码
远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
类型
(key: RemoteStreamKey, state: RemoteVideoState, reason: RemoteVideoStateChangeReason) => void
ts参数
key
类型: RemoteStreamKey
远端视频流的信息,房间、用户 ID、流属性等。
state
类型: RemoteVideoState
远端视频流状态
reason
类型: RemoteVideoStateChangeReason
远端视频流状态改变的原因
音频首帧发送状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
ts参数
room_id
类型: string
房间 ID
user
类型: RtcUser
本地用户信息
state
首帧发送状态
视频首帧发送状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
ts参数
room_id
类型: string
房间 ID
user
类型: RtcUser
本地用户信息
state
首帧发送状态
屏幕共享流视频首帧发送状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
ts参数
room_id
类型: string
房间 ID
user
类型: RtcUser
本地用户信息
state
首帧发送状态
音频首帧播放状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
ts参数
room_id
类型: string
房间 ID
user
类型: RtcUser
远端用户信息
state
首帧播放状态
视频首帧播放状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
ts参数
room_id
类型: string
房间 ID
user
类型: RtcUser
远端用户信息
state
首帧播放状态
屏幕共享流视频首帧播放状态改变回调
类型
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
ts参数
room_id
类型: string
房间id
user
类型: RtcUser
远端用户信息
state
首帧播放状态
当调用 sendMessageToUser 函数发送消息后,回调此条消息的发送结果(反馈)。
类型
(msgid: number, error: MessageSendResultCode) => void
ts参数
msgid
类型: number
本条消息的 ID
error
消息发送结果
单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。
类型
(uid: string, message: string) => void
ts注意
同一房间内其他用户调用 sendUserBinaryMessage 发送二进制消息给本地用户时,本地用户会收到该回调。
参数
uid
类型: string
消息发送者 ID 。
message
类型: string
收到的二进制消息内容。
当订阅一个流成功的时候回调该事件
类型
(state_code: SubscribeState, user_id: string, info: SubscribeConfig) => void
ts注意
当更新流的内容时比如增加或者减少音视频流成功更新时也会回调该事件
参数
state_code
类型: SubscribeState
订阅流的结果
user_id
类型: string
用户的标识
info
类型: SubscribeConfig
流的属性
收到通过 sendSEIMessage 发送的带有 SEI 消息的视频帧时,收到此回调
类型
(stream_key: RemoteStreamKey, message: string) => void
ts参数
stream_key
类型: RemoteStreamKey
包含 SEI 发送者的用户名,所在的房间名和媒体流
message
类型: string
收到的 SEI 消息内容
通知转推直播关键事件
类型
(event: StreamMixingEvent, task_id: string, error: number, mix_type: StreamMixingType) => void
ts参数
event
事件类型
task_id
类型: string
任务 ID
error
类型: number
错误类型
+ 0: 推流成功。
+ 1090: 未定义的合流错误。
+ 1091: 客户端 SDK 检测到无效推流参数。
+ 1092: 状态错误,需要在状态机正常状态下发起操作。
+ 1093: 无效操作。
+ 1094: 转推直播任务处理超时,请检查网络状态并重试。
+ 1095: 服务端检测到错误的推流参数。
+ 1096: 对流的订阅超时。
+ 1097: 合流服务端内部错误。
+ 1098: 合流服务端推 CDN 失败。
+ 1099: 服务端接收信令超时,请检查网络状态并重试。
+ 1100: 图片合流失败。
+ 1101: 服务端未知错误。
mix_type
类型: StreamMixingType
合流类型
单流转推直播状态回调
类型
(event: SingleStreamPushEvent, task_id: string, error: number) => void
ts参数
event
事件类型
task_id
类型: string
任务 ID
error
类型: number
错误类型
+ 0: 推流成功。
+ 1090: 未定义的合流错误。
+ 1091: 客户端 SDK 检测到无效推流参数。
+ 1092: 状态错误,需要在状态机正常状态下发起操作。
+ 1093: 无效操作。
+ 1094: 转推直播任务处理超时,请检查网络状态并重试。
+ 1095: 服务端检测到错误的推流参数。
+ 1096: 对流的订阅超时。
+ 1097: 合流服务端内部错误。
+ 1098: 合流服务端推 CDN 失败。
+ 1099: 服务端接收信令超时,请检查网络状态并重试。
+ 1100: 图片合流失败。
+ 1101: 服务端未知错误。
获取本地录制状态回调。
类型
(type: StreamIndex, state: number, error_code: number, info: RecordingInfo) => void
ts注意
该回调由 startFileRecording 或 stopFileRecording 触发。
参数
type
类型: StreamIndex
录制流的流属性
state
类型: number
录制状态
error_code
类型: number
录制错误码
info
类型: RecordingInfo
录制文件的详细信息
本地录制进度回调。
类型
(type: StreamIndex, process: RecordingProgress, info: RecordingInfo) => void
ts注意
该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。
参数
type
类型: StreamIndex
录制流的流属性
process
录制进度
info
类型: RecordingInfo
录制文件的详细信息
调用 login 后,会收到此回调。
类型
(uid: string, error_code: number, elapsed: number) => void
ts参数
uid
类型: string
登录用户 ID
error_code
类型: number
登录结果
elapsed
类型: number
从调用 login 接口开始到返回结果所用时长,单位为 ms。
登出结果回调
类型
() => void
ts注意
调用 logout 后,会收到此回调。
设置业务服务器参数的返回结果
类型
(error: number) => void
ts注意
调用 setServerParams 后,会收到此回调。
参数
error
类型: number
设置结果
查询对端或本端用户登录状态的返回结果
类型
(peer_user_id: string, status: number) => void
ts注意
必须先调用 getPeeronlineStatus,才能收到此回调。
参数
peer_user_id
类型: string
需要查询的用户 ID
status
类型: number
查询的用户登录状态
收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
类型
(uid: string, message: string) => void
ts参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的文本消息内容
收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
类型
(uid: string, message: string) => void
ts参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的二进制消息内容
给房间外指定的用户发送消息的回调
类型
(msgid: number, error: number) => void
ts注意
当调用 sendUserMessageOutsideRoom 或 sendUserBinaryMessageOutsideRoom 发送消息后,会收到此回调。
参数
msgid
类型: number
本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error
类型: number
消息发送结果
给业务服务器发送消息的回调
类型
(msgid: number, error: number, message: string) => void
ts注意
本回调为异步回调。当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。
参数
msgid
类型: number
本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error
类型: number
消息发送结果
message
类型: string
应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。消息不超过 64 KB。
返回麦克风录制的音频数据
类型
(audio_frame: IAudioFrame) => void
ts参数
audio_frame
类型: IAudioFrame
麦克风录制的音频数据
返回远端所有用户混音后的音频数据
类型
(audio_frame: IAudioFrame) => void
ts参数
audio_frame
类型: IAudioFrame
远端所有用户混音后的音频数据
返回本地麦克风录制和远端所有用户混音后的音频数据
类型
(audio_frame: IAudioFrame) => void
ts参数
audio_frame
类型: IAudioFrame
本地麦克风录制和远端所有用户混音后的音频数据
语音识别服务开启成功回调
类型
() => void
ts语音转文字成功回调,该回调返回识别后的全量消息。
类型
(message: string) => void
ts注意
若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。
参数
message
类型: string
识别完成后得到的文字消息
当语音识别服务内部发生错误事件时触发该回调。
类型
(error_code: number, error_message: string) => void
ts参数
error_code
类型: number
错误码 <0: 参数错误或 API 调用顺序错误
+ -1: 网络连接中断,服务不可用,内部会进行重连
+ -2: 重复调用 startASR。开启语音识别服务后,你需要先调用 stopASR 停止语音识别服务,才能二次调用 startASR 再次开启服务。
+ -3: 语音识别服务所需 token 为空
+ -4: Signature 鉴权模式下 secret_key 为空
+ -5: 用户 ID 为空
+ -6: 应用 ID 为空
+ -7: 语音识别服务 cluster 为空
+ -8: 语音识别服务连接失败,该版本没有语音识别功能,请联系 RTC 技术支持。
error_message
类型: string
错误原因说明
成功调用 startNetworkDetection 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。
类型
(type: number, quality: number, rtt: number, lost_rate: number, bit_rate: number, jitter: number) => void
ts参数
type
类型: number
探测网络类型为上行/下行
quality
类型: number
探测网络的质量
+ 0: 网络质量未知。
+ 1: 网络质量极好。
+ 2: 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
+ 3: 主观感受有瑕疵但不影响沟通。
+ 4: 勉强能沟通但不顺畅。
+ 5: 网络质量非常差,基本不能沟通。
rtt
类型: number
探测网络的 RTT,单位:ms
lost_rate
类型: number
探测网络的丢包率
bit_rate
类型: number
探测网络的带宽,单位:kbps
jitter
类型: number
探测网络的抖动,单位:ms
通话前网络探测结束
类型
(reason: number) => void
ts注意
以下情况将停止探测并收到本一次本回调:
参数
reason
类型: number
停止探测的原因类型
+ 0: 用户主动停止
+ 1: 探测超过三分钟
+ 2: 探测网络连接断开。当超过 12s 没有收到回复,SDK 将断开网络连接,并且不再尝试重连。
+ 3: 本地开始推拉流,停止探测
+ 4: 网络探测失败,内部异常
调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。
类型
(audio_properties_infos: LocalAudioPropertiesInfo, audio_properties_info_number: number) => void
ts参数
audio_properties_infos
本地音频信息。本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。
audio_properties_info_number
类型: number
数组长度,无需关注
远端用户进房后,本地调用 enableAudioPropertiesReport,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
类型
(audio_properties_infos: RemoteAudioPropertiesInfo, audio_properties_info_number: number, total_remote_volume: number) => void
ts参数
audio_properties_infos
远端音频信息,其中包含音频流属性、房间 ID、用户 ID。远端用户的音频包括使用 RTC SDK 采集的麦克风音频和屏幕音频。
audio_properties_info_number
类型: number
数组长度,无需关注
total_remote_volume
类型: number
订阅的所有远端流的总音量。
通话前网络探测结束
类型
(result: EchoTestResult) => void
ts注意
该回调触发的时机包括:
参数
result
类型: EchoTestResult
视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。
类型
(device_id: string, device_type: number, device_state: number, device_error: number) => void
ts参数
device_id
类型: string
设备 ID。采集屏幕共享流时,设备 ID 为固定字符串 screen_capture_video
device_type
类型: number
设备类型
+ -1: 未知设备类型
+ 0: 视频渲染设备类型
+ 1: 视频采集设备类型
+ 2: 屏幕流视频设备
device_state
类型: number
设备状态
+ 1: 设备已开启
+ 2: 设备已停止
+ 3: 设备运行时错误。例如,当媒体设备的预期行为是正常采集,但没有收到采集数据时,将回调该状态。
+ 4: 设备已暂停。包括:
+ 采集过程中,目标应用窗体最小化到任务栏。
+ 开启采集或采集过程中,目标应用窗体被隐藏。
+ 采集过程中,目标应用窗体正在被拉伸。
+ 采集过程中,目标应用窗体正在被拖动。
+ 5: 设备已恢复
+ 10: 设备已插入
+ 11: 设备被移除
+ 12: 用户合盖打断了视频通话。如果系统未休眠或关机,将在开盖后自动恢复视频通话。
+ 13: 视频通话已从合盖打断中恢复
+ 14: 设备成为系统默认
+ 15: 设备不再是系统默认
device_error
类型: number
设备错误类型
+ 0: 媒体设备正常
+ 1: 没有权限启动媒体设备
+ 2: 媒体设备已经在使用中
+ 3: 媒体设备错误
+ 4: 未找到指定的媒体设备
+ 5: 媒体设备被移除,对象为采集屏幕流时,表明窗体被关闭或显示器被移除。
+ 6: 设备没有数据回调
+ 7: 设备采样率不支持
音频设备状态回调。提示音频采集、音频播放等设备设备的状态。
类型
(device_id: string, device_type: number, device_state: number, device_error: number) => void
ts参数
device_id
类型: string
设备 ID
device_type
类型: number
设备类型
+ -1: 未知设备类型
+ 0: 音频渲染设备类型
+ 1: 音频采集设备类型
+ 2: 屏幕流音频设备
device_state
类型: number
设备状态
+ 1: 设备已开启
+ 2: 设备已停止
+ 3: 设备运行时错误。例如,当媒体设备的预期行为是正常采集,但没有收到采集数据时,将回调该状态。
+ 4: 设备已暂停。包括:
+ 采集过程中,目标应用窗体最小化到任务栏。
+ 开启采集或采集过程中,目标应用窗体被隐藏。
+ 采集过程中,目标应用窗体正在被拉伸。
+ 采集过程中,目标应用窗体正在被拖动。
+ 5: 设备已恢复
+ 10: 设备已插入
+ 11: 设备被移除
+ 12: 用户合盖打断了视频通话。如果系统未休眠或关机,将在开盖后自动恢复视频通话。
+ 13: 通话已从合盖打断中恢复
+ 14: 设备成为系统默认
+ 15: 设备不再是系统默认
device_error
类型: number
设备错误类型
+ 0: 媒体设备正常
+ 1: 没有权限启动媒体设备
+ 2: 媒体设备已经在使用中
+ 3: 媒体设备错误
+ 4: 未找到指定的媒体设备
+ 5: 媒体设备被移除,对象为采集屏幕流时,表明窗体被关闭或显示器被移除。
+ 6: 设备没有数据回调
+ 7: 设备采样率不支持
回调音频设备测试时的播放音量
类型
(volume: number) => void
ts注意
调用 startAudioPlaybackDeviceTest 开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
参数
volume
类型: number
音频设备测试播放音量。单位:毫秒。推荐设置为 200 ms。范围:[0,255]