StreamEvent

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 状态变化原因:

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
  }
});