Stream 事件列表
Stream.on('eventName')
事件监听中的事件名称。
Members
(static) PLAYER_STATE_CHANGED
- Default Value:
-
- 'player-state-changed'
Audio/Video Player 状态变化事件 App 可根据状态变化来更新 UI,比如,通过监听 video player 状态变化来关闭或打开遮板。
-
'PLAYING':开始播放
-
'PAUSED':暂停播放
- event.reason 为 ‘pause’ 时,由 <audio>/<video> element 的 pause 事件触发,如果在 Stream.play() 后 App 移动相关 div 容器,在 Chrome M70 版本以下的浏览器上可能会触发该事件,此时您需要调用 Stream.resume() 继续播放。
- event.reason 为 ‘mute’ 时。详见事件 MediaStreamTrack.mute_event
- 若 LocalStream 触发该事件,表明音频/视频采集暂停,通常是设备异常引起,如设备被其他应用抢占,此时需引导用户重新采集。
- 若 RemoteStream 触发该事件,表明收到的音频/视频数据不足以播放。通常是网络抖动引起,接入侧无需做任何处理。当收到的数据足以播放时,会自动恢复。
-
'STOPPED':停止播放
reason 状态变化原因:
- ‘playing’:开始播放,详见事件 HTMLMediaElement.playing_event
- ‘mute’:音视频轨道暂时未能提供数据,详见事件 MediaStreamTrack.mute_event
- ‘unmute’:音视频轨道恢复提供数据,详见事件 MediaStreamTrack.unmute_event
- ‘ended’:音视频轨道已被关闭
Example
stream.on('player-state-changed', event => {
console.log(`${event.type} player is ${event.state} because of ${event.reason}`);
});
(static) SCREEN_SHARING_STOPPED
- Default Value:
-
- 'screen-sharing-stopped'
本地屏幕分享停止事件通知,仅对本地屏幕分享流有效。
Example
stream.on('screen-sharing-stopped', () => {
console.log('screen sharing was stopped');
});
(static) CONNECTION_STATE_CHANGED
- Since:
-
- v4.10.1
- Default Value:
-
- 'connection-state-changed'
Stream 连接状态变更事件
- 'DISCONNECTED':连接断开
- 'CONNECTING':正在连接中
- 'RECONNECTING':自动重连中
- 'CONNECTED':已连接
Note:
- 若您需要监听 Stream 的连接状态变更,请在 stream-added 事件监听该事件,并在 stream-removed 事件取消该事件监听。
Example
stream.on('connection-state-changed', (event) => {
console.log(`prevState: ${event.prevState}, state: ${event.state}`);
});
(static) ERROR
- Default Value:
-
- 'error'
错误事件,当出现不可恢复错误后,会抛出此事件
Example
stream.on('error', error => {
const errorCode = error.getCode();
if (errorCode === 0x4043) {
// 自动播放受限,引导用户手势操作并调用 stream.resume 恢复音视频播放
// 参考:https://trtc-1252463788.file.myqcloud.com/web/docs/module-ErrorCode.html#.PLAY_NOT_ALLOWED
} else if (errorCode === 0x4044) {
// 媒体设备被拔出后自动恢复失败,参考:https://trtc-1252463788.file.myqcloud.com/web/docs/module-ErrorCode.html#.DEVICE_AUTO_RECOVER_FAILED
}
});