类型: interface
| 名称 | 描述 |
|---|---|
| onLocalScreenFrame() | 本地屏幕视频流采集成功后,会收到此回调。 |
| onLocalVideoFrame() | 本地视频流数据回调 |
| onRemoteScreenFrame() | 远端屏幕共享流数据回调 |
| onRemoteVideoFrame() | 远端视频数据回调 |
| onWarning() | 当内部发生警告事件时触发该回调 |
| onError() | 当内部发生不可逆转错误时触发该回调 |
| onAudioMixingFinished() | 本地音乐文件播放已结束回调。当调用 startAudioMixing 启动的混音文件播放结束后,会触发该回调。 |
| 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() | 通知转推直播关键事件 | | onRecordingStateUpdate() | 获取本地录制状态回调。 该回调由 startFileRecording 或 stopFileRecording 触发。 | | onRecordingProgressUpdate() | 本地录制进度回调。 该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。 | | 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 值,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。 |
| onRemoteAudioPropertiesReport() | 远端用户进房后,本地调用 enableAudioPropertiesReport ,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
远端用户的音频包括使用 RTC SDK 采集的麦克风音频和屏幕音频。 |
| onEchoTestResult() | 通话前网络探测结束 | | onVideoDeviceStateChanged() | 视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。 | | onAudioDeviceStateChanged() | 音频设备状态回调。提示音频采集、音频播放等设备设备的状态。 | | onAudioPlaybackDeviceTestVolume() | 回调音频设备测试时的播放音量 |
本地屏幕视频流采集成功后,会收到此回调。
ts
(frame: IVideoFrame) => void
对于回调的视频数据,你可以进行自定义渲染。
参数
frame
类型: IVideoFrame
视频数据
本地视频流数据回调
ts
(frame: IVideoFrame) => void
参数
frame
类型: IVideoFrame
视频数据
远端屏幕共享流数据回调
ts
(frame: IVideoFrame) => void
参数
frame
类型: IVideoFrame
视频数据
远端视频数据回调
ts
(frame: IVideoFrame) => void
参数
frame
类型: IVideoFrame
视频数据
当内部发生警告事件时触发该回调
ts
(warn: WarningCode) => void
参数
warn
类型: WarningCode
警告标识码
当内部发生不可逆转错误时触发该回调
ts
(error: ErrorCode) => void
参数
error
类型: ErrorCode
错误标识码
本地音乐文件播放已结束回调。当调用 startAudioMixing 启动的混音文件播放结束后,会触发该回调。
ts
() => void
音频混音文件播放状态改变时回调
ts
(id: number, state: AudioMixingState, error: AudioMixingError) => void
注意
此回调会被触发的时机汇总如下:
播放结束会触发 state 值为 kAudioMixingStateFinished 回调。
参数
id
类型: number
混音 ID
state
类型: AudioMixingState
混音状态
error
类型: AudioMixingError
错误码
混音音频文件播放进度回调
ts
(mix_id: number, progress: number) => void
调用 setAudioMixingProgressInterval 将时间间隔设为大于 0 的值后,或调用 startAudioMixing 将 AudioMixingConfig 中的时间间隔设为大于 0 的值后,SDK 会按照设置的时间间隔回调该事件。
参数
mix_id
类型: number
混音 ID
progress
类型: number
当前混音音频文件播放进度,单位毫秒
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
ts
(state: ConnectionState) => void
参数
state
类型: ConnectionState
当前 SDK 与信令服务器的连接状态
SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
ts
(type: NetworkType) => void
参数
type
类型: NetworkType
SDK 当前的网络连接类型
本地未开启发布性能回退,检测到设备性能不足时,收到此回调。本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
ts
(mode: PerformanceAlarmMode, room_id: string, reason: PerformanceAlarmReason, sourceWantedDataObject: Object) => void
参数
mode
指示本地是否开启发布回退功能
room_id
类型: string
reason
告警原因
sourceWantedDataObject
类型: Object
性能回退相关数据
周期性地发出回调,报告当前cpu与memory使用率
ts
(stats: SysStats) => void
参数
stats
类型: SysStats
返回包含当前系统状态信息的结构体
房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
ts
(room_id: string, user_id: string) => void
参数
room_id
类型: string
开启音频采集的远端用户所在的房间 ID
user_id
类型: string
开启音频采集的远端用户 ID
房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
ts
(room_id: string, user_id: string) => void
参数
room_id
类型: string
关闭音频采集的远端用户所在的房间 ID
user_id
类型: string
关闭音频采集的远端用户 ID
本地采集到第一帧音频帧时,收到该回调
ts
(index: StreamIndex) => void
参数
index
类型: StreamIndex
音频流属性
接收到来自远端某音频流的第一帧时,收到该回调。
ts
(key: RemoteStreamKey) => void
用户刚收到房间内每一路音频流时,都会收到该回调。
参数
key
类型: RemoteStreamKey
远端音频流信息
因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。
ts
(stream: RemoteStreamSwitch) => void
你必须先通过 API 或控制台设置音视频流订阅回退功能时,你才能收到此回调。
参数
stream
流切换信息
第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。
ts
(index: StreamIndex, info: VideoFrameInfo) => void
参数
index
类型: StreamIndex
流属性
info
类型: VideoFrameInfo
视频信息
本地视频大小或旋转配置发生改变时,收到此回调。
ts
(index: StreamIndex, info: VideoFrameInfo) => void
参数
index
类型: StreamIndex
流属性
info
类型: VideoFrameInfo
视频帧信息
远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。
ts
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
参数
key
类型: RemoteStreamKey
远端流信息
stream
类型: VideoFrameInfo
视频帧信息
第一帧远端视频流在视图上渲染成功后,收到此回调。
ts
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
参数
key
类型: RemoteStreamKey
远端流信息
stream
类型: VideoFrameInfo
视频帧信息
SDK 接收并解码远端视频流首帧后,收到此回调。
ts
(key: RemoteStreamKey, stream: VideoFrameInfo) => void
参数
key
类型: RemoteStreamKey
远端流信息。
stream
类型: VideoFrameInfo
视频帧信息。
房间内的用户调用 startVideoCapture 开启视频采集时,房间内其他用户会收到此回调。
ts
(room_id: string, user_id: string) => void
参数
room_id
类型: string
开启视频采集的远端用户所在的房间 ID
user_id
类型: string
开启视频采集的远端用户 ID
房间内的用户调用 stopVideoCapture 关闭视频采集时,房间内其他用户会收到此回调。
ts
(room_id: string, user_id: string) => void
参数
room_id
类型: string
关闭视频采集的远端用户所在的房间 ID
user_id
类型: string
关闭视频采集的远端用户 ID
本地音频的状态发生改变时,该回调通知当前的本地音频状态。
ts
(state: LocalAudioStreamState, error: LocalAudioStreamError) => void
参数
state
本地音频设备的状态
error
本地音频状态改变时的错误码
用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
ts
(key: RemoteStreamKey, state: RemoteAudioState, reason: RemoteAudioStateChangeReason) => void
参数
key
类型: RemoteStreamKey
远端流信息
state
类型: RemoteAudioState
远端音频流状态
reason
类型: RemoteAudioStateChangeReason
远端音频流状态改变的原因
调用 enableAudioPropertiesReport 后,根据设置的 config.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。
ts
(room_id: string, uid: string) => void
参数
uid
类型: string
最活跃用户(ActiveSpeaker)的用户 ID
room_id
类型: string
房间 ID
本地视频流的状态发生改变时,收到该事件。
ts
(index: StreamIndex, state: LocalVideoStreamState, error: LocalVideoStreamError) => void
参数
index
类型: StreamIndex
音/视频属性
state
本地视频流状态
error
本地视频状态改变时的错误码
远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
ts
(key: RemoteStreamKey, state: RemoteVideoState, reason: RemoteVideoStateChangeReason) => void
参数
key
类型: RemoteStreamKey
远端视频流的信息,房间、用户 ID、流属性等。
state
类型: RemoteVideoState
远端视频流状态
reason
类型: RemoteVideoStateChangeReason
远端视频流状态改变的原因
音频首帧发送状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
参数
user
类型: string
本地用户信息
state
类型: RtcUser
首帧发送状态
state
视频首帧发送状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
参数
user
类型: string
本地用户信息
state
类型: RtcUser
首帧发送状态
state
屏幕共享流视频首帧发送状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFrameSendState) => void
参数
user
类型: string
本地用户信息
state
类型: RtcUser
首帧发送状态
state
音频首帧播放状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
参数
user
类型: string
远端用户信息
state
类型: RtcUser
首帧播放状态
state
视频首帧播放状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
参数
user
类型: string
远端用户信息
state
类型: RtcUser
首帧播放状态
state
屏幕共享流视频首帧播放状态改变回调
ts
(room_id: string, user: RtcUser, state: FirstFramePlayState) => void
参数
roomId
类型: string
房间id
user
类型: RtcUser
远端用户信息
state
首帧播放状态roomId
当调用 sendMessageToUser 函数发送消息后,回调此条消息的发送结果(反馈)。
ts
(msgId: number, error: MessageSendResultCode) => void
参数
msgId
类型: number
本条消息的 ID
error
消息发送结果
单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。
ts
(uid: string, message: string) => void
同一房间内其他用户调用 sendUserBinaryMessage 发送二进制消息给本地用户时,本地用户会收到该回调。
参数
uid
类型: string
消息发送者 ID 。
message
类型: string
收到的二进制消息内容。
当订阅一个流成功的时候回调该事件
当更新流的内容时比如增加或者减少音视频流成功更新时也会回调该事件
ts
(stateCode: SubscribeState, userId: string, info: SubscribeConfig) => void
参数
stateCode
类型: SubscribeState
订阅流的结果
userId
类型: string
用户的标识
info
类型: SubscribeConfig
流的属性
收到通过 sendSEIMessage 发送的带有 SEI 消息的视频帧时,收到此回调
ts
(stream_key: RemoteStreamKey, message: string) => void
参数
stream_key
类型: RemoteStreamKey
包含 SEI 发送者的用户名,所在的房间名和媒体流
message
类型: string
收到的 SEI 消息内容
通知转推直播关键事件
ts
(event: StreamMixingEvent, task_id: string, error: number, mix_type: StreamMixingType) => void
参数
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
合流类型
获取本地录制状态回调。 该回调由 startFileRecording 或 stopFileRecording 触发。
ts
(type: StreamIndex, state: number, error_code: number, info: RecordingInfo) => void
参数
type
类型: StreamIndex
录制流的流属性
state
类型: number
录制状态
error_code
类型: number
录制错误码
info
类型: RecordingInfo
录制文件的详细信息
本地录制进度回调。 该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。
ts
(type: StreamIndex, process: RecordingProgress, info: RecordingInfo) => void
参数
type
类型: StreamIndex
录制流的流属性
process
录制进度
info
类型: RecordingInfo
录制文件的详细信息
调用 login 后,会收到此回调。
ts
(uid: string, error_code: number, elapsed: number) => void
参数
uid
类型: string
登录用户 ID
error_code
类型: number
登录结果
elapsed
类型: number
从调用 login 接口开始到返回结果所用时长,单位为 ms。
登出结果回调
ts
() => void
调用 logout 后,会收到此回调。
设置业务服务器参数的返回结果
ts
(error: number) => void
调用 setServerParams 后,会收到此回调。
参数
error
类型: number
设置结果
查询对端或本端用户登录状态的返回结果
ts
(peer_user_id: string, status: number) => void
必须先调用 getPeeronlineStatus,才能收到此回调。
参数
peer_user_id
类型: string
需要查询的用户 ID
status
类型: number
查询的用户登录状态
收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
ts
(uid: string, message: string) => void
参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的文本消息内容
收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
ts
(uid: string, message: string) => void
参数
uid
类型: string
消息发送者 ID
message
类型: string
收到的二进制消息内容
给房间外指定的用户发送消息的回调
ts
(msgid: number, error: number) => void
当调用 sendUserMessageOutsideRoom 或 sendUserBinaryMessageOutsideRoom 发送消息后,会收到此回调。
参数
msgid
类型: number
本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error
类型: number
消息发送结果
给业务服务器发送消息的回调
ts
(msgid: number, error: number, message: string) => void
当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。
参数
msgid
类型: number
本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error
类型: number
消息发送结果
message
类型: string
应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。
返回麦克风录制的音频数据
ts
(audio_frame: IAudioFrame) => void
参数
audio_frame
类型: IAudioFrame
麦克风录制的音频数据
返回远端所有用户混音后的音频数据
ts
(audio_frame: IAudioFrame) => void
参数
audio_frame
类型: IAudioFrame
远端所有用户混音后的音频数据
返回本地麦克风录制和远端所有用户混音后的音频数据
ts
(audio_frame: IAudioFrame) => void
参数
audio_frame
类型: IAudioFrame
本地麦克风录制和远端所有用户混音后的音频数据
语音识别服务开启成功回调
ts
() => void
语音转文字成功回调,该回调返回识别后的全量消息。
ts
(message: string) => void
若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。
参数
message
类型: string
识别完成后得到的文字消息
当语音识别服务内部发生错误事件时触发该回调。
ts
(error_code: number, error_message: string) => void
参数
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 收到一次该回调。
ts
(type: number, quality: number, rtt: number, lost_rate: number, bitrate: number, jitter: number) => void
当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。
参数
type
类型: number
探测网络类型为上行/下行
quality
类型: number
探测网络的质量
+ 0: 网络质量未知。
+ 1: 网络质量极好。
+ 2: 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
+ 3: 主观感受有瑕疵但不影响沟通。
+ 4: 勉强能沟通但不顺畅。
+ 5: 网络质量非常差,基本不能沟通。
rtt
类型: number
探测网络的 RTT,单位:ms
lost_rate
类型: number
探测网络的丢包率
bitrate
类型: number
探测网络的带宽,单位:kbps
jitter
类型: number
探测网络的抖动,单位:ms
通话前网络探测结束
ts
(reason: number) => void
以下情况将停止探测并收到本一次本回调:
当探测链路断开一定时间之后,停止探测。
参数
reason
类型: number
停止探测的原因类型
+ 0: 用户主动停止
+ 1: 探测超过三分钟
+ 2: 探测网络连接断开。当超过 12s 没有收到回复,SDK 将断开网络连接,并且不再尝试重连。
+ 3: 本地开始推拉流,停止探测
+ 4: 网络探测失败,内部异常
调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。
ts
(audioPropertiesInfo: LocalAudioPropertiesInfo, audio_properties_info_number: number) => void
参数
audio_properties_info_number
audioPropertiesInfo
类型: number
本地音频信息
远端用户进房后,本地调用 enableAudioPropertiesReport ,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
远端用户的音频包括使用 RTC SDK 采集的麦克风音频和屏幕音频。
ts
(total_remote_volume: number, audio_properties_info_number: number, audioPropertiesInfo: RemoteAudioPropertiesInfo) => void
参数
total_remote_volume
类型: number
订阅的所有远端流的总音量。
audio_properties_info_number
类型: number
audioPropertiesInfo
远端音频信息,其中包含音频流属性、房间 ID、用户 ID
通话前网络探测结束
ts
(result: number) => void
该回调触发的时机包括:
非设备原因导致检测过程中未接收到音/视频回放,停止检测后。
参数
result
类型: number
视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。
ts
(device_id: string, device_type: number, device_state: number, device_error: number) => void
参数
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: 设备采样率不支持
音频设备状态回调。提示音频采集、音频播放等设备设备的状态。
ts
(device_id: string, device_type: number, device_state: number, device_error: number) => void
参数
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: 设备采样率不支持
回调音频设备测试时的播放音量
ts
(volume: number) => void
调用 startAudioPlaybackDeviceTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
参数
volume
类型: number
音频设备测试播放音量。单位:毫秒。推荐设置为 200 ms。范围:[0,255]
类型: interface
| 名称 | 描述 |
|---|---|
| onRoomStateChanged() | 房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。 |
| onStreamStateChanged() | 流状态改变回调,发生流相关的警告或错误时会收到此回调。 |
| onLeaveRoom() | 离开房间成功回调。 用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。 |
| 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() | 接收到房间内广播消息的回调。 房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。 |
| onRoomBinaryMessageReceived() | 接收到房间内广播二进制消息的回调。 房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。 |
| onUserMessageReceived() | 收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。 |
| onUserBinaryMessageReceived() | 收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。 |
| onUserMessageSendResult() | 向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。 |
| onRoomMessageSendResult() | 调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。 |
| onForwardStreamStateChanged() | 跨房间媒体流转发状态和错误回调 |
| onForwardStreamEvent() | 跨房间媒体流转发事件回调 |
| onRangeAudioInfo() | 关于当前范围语音衰减系数的回调。 手动订阅的场景下,房间内任一用户调用 updateRangePosition 更新自身位置或调用 updateReceiveRange 更新语音接收范围时,该用户与房间内其他用户的相对距离都会发生改变,据此计算的衰减系数也会发生改变,并通过该回调通知用户。 你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。 |
| onNetworkQuality() | 加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息 |
房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。
ts
(roomId: string, userId: string, state: number, extraInfo: string) => void
参数
roomId
类型: string
房间 ID。
userId
类型: string
用户 ID。
state
类型: number
房间状态码。
+ 0: 成功。
+ !0: 失败,参看 ErrorCode 及 WarningCode。
extraInfo
类型: string
额外信息。joinType表示加入房间的类型,0为首次进房,1为重连进房。elapsed表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。
流状态改变回调,发生流相关的警告或错误时会收到此回调。
ts
(roomId: string, userId: string, state: number, extraInfo: string) => void
参数
roomId
类型: string
房间 ID。
userId
类型: string
用户 ID。
state
类型: number
流状态码,参看 ErrorCode 及 WarningCode。
extraInfo
类型: string
附加信息,目前为空。
离开房间成功回调。
用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
ts
(stats: RtcRoomStats) => void
注意
用户调用 leaveRoom 方法离开房间后,如果立即调用 destroyRTCVideo 方法销毁 RTC 引擎,则将无法收到此回调事件。
离开房间后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备导致初始化失败。
参数
stats
类型: RtcRoomStats
本次通话的统计数据。
可见用户加入房间,或房内隐身用户切换为可见的回调。
1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。
ts
(userId: string, elapsed: number) => void
参数
userId
类型: string
用户信息。
elapsed
类型: number
主播角色用户调用 joinRoom 加入房间到房间内其他用户收到该事件经历的时间,单位为 ms。
远端用户离开房间,或切至不可见时,本地用户会收到此事件
ts
(userId: string, reason: UserOfflineReasonType) => void
参数
userId
类型: string
离开房间,或切至不可见的的远端用户 ID。
reason
用户离开房间的原因:
+ 0: 远端用户调用 leaveRoom 主动退出房间。
+ 1: 远端用户因 Token 过期或网络原因等掉线。
+ 2: 远端用户调用 setUserVisibility 切换至不可见状态。
+ 3: 服务端调用 OpenAPI 将远端用户踢出房间。
Token 过期前 30 秒将触发该回调。
ts
() => void
调用 updateToken 更新 Token。否则 Token 过期后,用户将被移出房间无法继续进行音视频通话。
发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。
ts
(state: AVSyncState) => void
参数
state
类型: AVSyncState
音视频同步状态
房间通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。
ts
(stats: RtcRoomStats) => void
参数
stats
类型: RtcRoomStats
房间内的汇总统计数据。
反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。
本地用户发布音视频流成功后,每隔 2s 收到此回调。
ts
(stats: LocalStreamStats) => void
参数
stats
类型: LocalStreamStats
音视频流以及网络状况统计信息。
反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。
ts
(stats: RemoteStreamStats) => void
参数
stats
音视频流以及网络状况统计信息。
房间内新增远端麦克风采集的音频流的回调。
ts
(userId: string, type: MediaStreamType) => void
当房间内的远端用户调用 publishStream 成功发布由麦克风采集的音频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
参数
userId
类型: string
远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型。
房间内远端麦克风采集的音频流移除的回调。
ts
(userId: string, type: MediaStreamType, reason: StreamRemoveReason) => void
收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。
参数
userId
类型: string
移除的远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型。
reason
远端流移除的原因
房间内新增远端屏幕共享音视频流的回调。
ts
(userId: string, type: MediaStreamType) => void
当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。
参数
userId
类型: string
远端流发布用户的用户 ID。
type
类型: MediaStreamType
远端媒体流的类型
房间内远端屏幕共享音视频流移除的回调。
ts
(userId: string, type: MediaStreamType, reason: StreamRemoveReason) => void
收到该回调通知后,你可以自行选择是否调用 unsubscribeScreen 取消订阅此流。
参数
userId
类型: string
移除的远端流发布用户的用户 ID。
type
类型: MediaStreamType
移除的远端流类型
reason
远端流移除的原因
关于订阅媒体流状态改变的回调
ts
(stateCode: SubscribeState, userId: string, config: SubscribeConfig) => void
本地用户收到该回调的时机包括:
调用 subscribeScreen 或 unsubscribeScreen 订阅/取消订阅指定远端屏幕共享流后。
参数
stateCode
类型: SubscribeState
订阅媒体流状态
userId
类型: string
流发布用户的用户 ID
config
类型: SubscribeConfig
流的属性
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
ts
(userId: string, banned: boolean) => void
注意
房间内指定用户被禁止/解禁视频流发送时,房间内所有用户都会收到该回调。
通话人数超过 5 人时,只有被封禁/解禁用户会收到该回调。
参数
userId
类型: string
被禁用/解禁的视频流用户 ID
banned
类型: boolean
视频流发送状态
+ true: 视频流发送被禁用
+ false: 视频流发送被解禁
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。
ts
(userId: string, banned: boolean) => void
注意
房间内指定用户被禁止/解禁音频流发送时,房间内所有用户都会收到该回调。
通话人数超过 5 人时,只有被封禁/解禁用户会收到该回调。
参数
userId
类型: string
被禁用/解禁的音频流用户 ID
banned
类型: boolean
音频流发送状态
+ true: 音频流发送被禁用
+ false: 音频流发送被解禁
接收到房间内广播消息的回调。
房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。
ts
(userId: string, message: string) => void
参数
userId
类型: string
消息发送者 ID
message
类型: string
收到的消息内容
接收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
ts
(userId: string, message: string) => void
参数
userId
类型: string
消息发送者 ID
message
类型: string
收到的二进制消息内容
收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
ts
(userId: string, message: string) => void
参数
userId
类型: string
消息发送者的用户 ID 。
message
类型: string
收到的文本消息内容。
收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
ts
(userId: string, message: string) => void
参数
userId
类型: string
消息发送者的用户 ID 。
message
类型: string
收到的二进制消息内容。
向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。
ts
(msgId: number, error: number) => void
调用 sendUserMessage 或 sendUserBinaryMessage 接口,才能收到此回调。
参数
msgId
类型: number
本条消息的 ID。
error
类型: number
文本或二进制消息发送结果
+ 200: 消息发送成功
+ 100: 失败,发送方未加入房间
+ 102: 失败,没有可用的数据传输通道连接
+ 103: 失败,消息超过最大长度,当前为 64 KB
+ 1000: 失败,未知错误
调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
ts
(msgId: number, error: number) => void
参数
msgId
类型: number
本条消息的 ID。
error
类型: number
消息发送结果
+ 200: 消息发送成功
+ 100: 失败,发送方未加入房间
+ 102: 失败,没有可用的数据传输通道连接
+ 103: 失败,消息超过最大长度,当前为 64 KB
+ 1000: 失败,未知错误
跨房间媒体流转发状态和错误回调
ts
(infos: ForwardStreamStateInfo[], infoCount: number) => void
参数
infos
类型: ForwardStreamStateInfo[]
跨房间媒体流转发目标房间信息数组
infoCount
类型: number
数量
跨房间媒体流转发事件回调
ts
(infos: ForwardStreamEventInfo[], infoCount: number) => void
参数
infos
类型: ForwardStreamEventInfo[]
跨房间媒体流转发目标房间事件数组
infoCount
类型: number
数量
关于当前范围语音衰减系数的回调。
手动订阅的场景下,房间内任一用户调用 updateRangePosition 更新自身位置或调用 updateReceiveRange 更新语音接收范围时,该用户与房间内其他用户的相对距离都会发生改变,据此计算的衰减系数也会发生改变,并通过该回调通知用户。
你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。
ts
(rangeAudioInfo: RangeAudioInfo, len: number) => void
更新自身位置或语音接收范围后,并不会马上触发该回调。SDK 会每 500 ms 计算一次衰减系数,并且只在计算结果与上次不同,或结果相同但是距离上次计算已超过 3 秒的时候推送回调。
参数
rangeAudioInfo
类型: RangeAudioInfo
包含范围语音流信息的数组
len
类型: number
范围语音流信息数组长度
加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息
ts
(localQuality: NetworkQualityStats, remoteQualities: NetworkQualityStats[]) => void
更多通话中的监测接口,详见通话中质量监测
参数
localQuality
本地网络质量。
remoteQualities
类型: NetworkQualityStats[]
已订阅用户的网络质量。