类型: interface
播放器事件
(event: PlayerEvent) => void
参数
event
类型: PlayerEvent
用户加入房间
(event: onUserJoinedEvent) => void
参数
event
用户离开房间
(event: onUserLeaveEvent) => void
参数
event
类型: onUserLeaveEvent
连接状态发生变化
(event: ConnectionStateChangeEvent) => void
参数
event
房间内新增远端摄像头/麦克风采集音视频流的回调。
(event: { userId: string; mediaType: MediaType;}) => void
当房间内的远端用户调用 publishStream 成功发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
参数
event
类型: { userId: string; mediaType: MediaType; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
远端流发布用户的用户 ID |
| mediaType | MediaType |
远端媒体流的类型 |
房间内远端摄像头/麦克风采集的媒体流移除的回调。
(event: { userId: string; mediaType: MediaType; reason: StreamRemoveReason;}) => void
当房间内的远端用户调用 unpublishStream 成功取消发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 unsubscribeStream 取消订阅此流。
参数
event
类型: { userId: string; mediaType: MediaType; reason: StreamRemoveReason; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
移除的远端流发布用户的用户 ID |
| mediaType | MediaType |
远端媒体流的类型 |
| reason | StreamRemoveReason |
远端流移除的原因 |
房间内新增远端屏幕共享音视频流的回调。
(event: { userId: string; mediaType: MediaType;}) => void
当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。
参数
event
类型: { userId: string; mediaType: MediaType; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
远端流发布用户的用户 ID |
| mediaType | MediaType |
远端媒体流的类型 |
房间内远端屏幕共享音视频流移除的回调。
(event: { userId: string; mediaType: MediaType; reason: StreamRemoveReason;}) => void
当房间内的远端用户调用 unpublishScreen 成功取消发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 unsubscribeScreen 取消订阅此流。
参数
event
类型: { userId: string; mediaType: MediaType; reason: StreamRemoveReason; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
移除的远端流发布用户的用户 ID |
| mediaType | MediaType |
远端媒体流的类型 |
| reason | StreamRemoveReason |
远端流移除的原因 |
视频首帧渲染
(event: onVideoFirstFrameRenderedEvent) => void
参数
event
视频首帧解码
(event: onVideoFirstFrameDecodedEvent) => void
参数
event
音频首帧解码
(event: onAudioFirstFrameDecodedEvent) => void
参数
event
视频媒体设备状态改变。
(event: DeviceInfo) => void
参数
event
类型: DeviceInfo
媒体设备信息及状态。
音频媒体设备状态改变。
(event: DeviceInfo) => void
参数
event
类型: DeviceInfo
媒体设备信息及状态。
自动播放失败
(event: PlayerEvent) => void
参数
event
类型: PlayerEvent
断流事件
(event: { kind: string; isScreen: boolean;}) => void
参数
event
类型: { kind: string; isScreen: boolean; }
| 名称 | 类型 | 描述 |
|---|---|---|
| kind | string |
类型 |
| isScreen | boolean |
是否屏幕流 |
接收到房间内广播消息的事件。
(event: { userId: string; message: any;}) => void
参数
event
类型: { userId: string; message: any; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
发送消息用户的 userId |
| message | any |
消息内容 |
接收到房间内二进制广播消息的事件。
(event: { userId: string; message: ArrayBuffer;}) => void
参数
event
类型: { userId: string; message: ArrayBuffer; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
发送消息用户的 userId |
| message | ArrayBuffer |
消息内容 |
收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此事件
(event: UserMessageEvent) => void
参数
event
类型: UserMessageEvent
收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此事件
(event: UserBinaryMessageEvent) => void
参数
event
用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s
(stats: RemoteStreamStats) => void
参数
stats
本地音/视频流统计信息以及网络状况,统计周期为 2s
(stats: LocalStreamStats) => void
参数
stats
类型: LocalStreamStats
调用 startPlayPublicStream 订阅公共流,后将触发此回调,周期为 2s,包含各项统计信息。
(stats: PublicStreamStats) => void
参数
stats
调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。
(event: LocalAudioPropertiesInfo[]) => void
参数
event
类型: LocalAudioPropertiesInfo[]
本地音频信息。
远端用户进房后,本地调用 enableAudioPropertiesReport,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
远端用户的音频包括使用 RTC SDK 内部机制/自定义机制采集的麦克风音频和屏幕音频。
(event: RemoteAudioPropertiesInfo[]) => void
参数
event
类型: RemoteAudioPropertiesInfo[]
远端音频信息,其中包含音频流属性、房间 ID、用户 ID。
当调用 setAudioPlaybackDevice 设置音频播放设备时,会收到此事件。
(event: MediaDeviceInfo) => void
参数
event
类型: MediaDeviceInfo
媒体设备信息,参看 MediaDeviceInfo。
房间内的可见用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此事件。
(event: { userId: string;}) => void
参数
event
类型: { userId: string; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
开启音频采集的远端用户 ID |
房间内的可见用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此事件。
(event: { userId: string;}) => void
参数
event
类型: { userId: string; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
关闭音频采集的远端用户 ID |
房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此事件。
(event: { userId: string;}) => void
参数
event
类型: { userId: string; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
开启视频采集的用户 ID |
房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此事件。
(event: { userId: string;}) => void
参数
event
类型: { userId: string; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
停止视频采集的用户的 ID |
接收到包含 SEI 数据的视频帧事件
(event: onSEIMessageEvent) => void
参数
event
SEI 数据事件
如果开启了自动订阅,订阅成功或者失败后可以收到此事件
(event: { userId: string; isScreen: boolean; state: SubscribeState;}) => void
参数
event
类型: { userId: string; isScreen: boolean; state: SubscribeState; }
| 名称 | 类型 | 描述 |
|---|---|---|
| userId | string |
订阅用户的 userId |
| isScreen | boolean |
是否为屏幕流 |
| state | SubscribeState |
订阅状态 |
如果开启了自动发布,发布成功或者失败后可以收到此事件
(event: { isScreen: boolean; state: PublishState;}) => void
参数
event
类型: { isScreen: boolean; state: PublishState; }
| 名称 | 类型 | 描述 |
|---|---|---|
| isScreen | boolean |
是否为屏幕流 |
| state | PublishState |
发布状态 |
自动播放失败
(event: PlayerEvent) => void
参数
event
类型: PlayerEvent
播放器事件
当 SDK 内部发生不可逆转错误时触发该回调
(event: { errorCode: ErrorCode.DUPLICATE_LOGIN | ErrorCode.RTM_DUPLICATE_LOGIN | ErrorCode.RTM_TOKEN_ERROR | ErrorCode.EXPIRED_TOKEN | ErrorCode.RECONNECT_FAILED;}) => void
参数
event
类型: { errorCode: ErrorCode.DUPLICATE_LOGIN | ErrorCode.RTM_DUPLICATE_LOGIN | ErrorCode.RTM_TOKEN_ERROR | ErrorCode.EXPIRED_TOKEN | ErrorCode.RECONNECT_FAILED; }
| 名称 | 类型 | 描述 |
|---|---|---|
| errorCode | ErrorCode.EXPIRED_TOKEN | ErrorCode.DUPLICATE_LOGIN | ErrorCode.RTM_DUPLICATE_LOGIN | ErrorCode.RTM_TOKEN_ERROR | ErrorCode.RECONNECT_FAILED |
查看错误码和发生错误的原因 |
音频混音文件播放状态改变事件
(event: AudioMixingStateChangedEvent) => void
参数
event
接收到房间外消息的事件。
(event: UserMessageEvent) => void
参数
event
类型: UserMessageEvent
接收到房间外二进制消息的事件。
(event: UserBinaryMessageEvent) => void
参数
event
Token 过期前 30 秒将触发该回调。
调用 updateToken 更新 Token。否则 Token 过期后,用户将被移出房间无法继续进行音视频通话。
() => void
调用 startCloudProxy 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。
(event: CloudProxyConnectedEvent) => void
参数
event
公共流发布结果回调。
调用 startPushPublicStream 发布公共流后,结果通过此回调通知用户。
(event: PublicStreamResultEvent) => void
参数
event
公共流的视频首帧解码成功。
关于订阅公共流,参看 startPlayPublicStream。
(event: PublicStreamVideoFirstFrameDecodedEvent) => void
参数
event
公共流的音频首帧解码成功。
关于订阅公共流,参看 startPlayPublicStream。
(event: PublicStreamAudioFirstFrameDecodedEvent) => void
参数
event
公共流的首帧视频渲染成功。
关于订阅公共流,参看 startPlayPublicStream。
(event: PublicStreamAudioFirstFrameDecodedEvent) => void
参数
event
回调音频设备测试时的播放音量
(volume: number) => void
调用 startAudioPlaybackDeviceTest 或 startAudioDeviceRecordTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
参数
volume
类型: number
音频设备测试播放音量。单位:毫秒。推荐设置为 200 ms。范围:[0,255]
加入房间后,会以每2秒一次的频率,收到本端的网络质量信息。
(uplinkNetworkQuality: NetworkQuality, downlinkNetworkQuality: NetworkQuality) => void
参数
uplinkNetworkQuality
类型: NetworkQuality
downlinkNetworkQuality
类型: NetworkQuality
订阅的视频流发生回退,或从回退中恢复时,收到此回调。
(event: RemoteStreamSwitch) => void
参数
event
流切换信息
远端视频分辨率发生改变时,房间内订阅此视频流的用户会收到此回调。
(key: RemoteStreamKey, info: { width: number; height: number;}) => void
参数
key
类型: RemoteStreamKey
info
类型: { width: number; height: number; }
| 名称 | 类型 | 描述 |
|---|---|---|
| width | number |
宽度,单位:px |
| height | number |
高度,单位:px |
转推直播相关事件
(event: StreamMixingEvent) => void
参数
event