onRemoteVideoStateChanged method

FutureOr<void> onRemoteVideoStateChanged(
  1. dynamic streamId,
  2. dynamic streamInfo,
  3. dynamic videoState,
  4. dynamic videoStateReason,
)
override

@detail callback @author shenpengliang @brief 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。 @param streamId 远端流 ID @param streamInfo 远端流信息, 详见 StreamInfo{@link #StreamInfo} @param videoState 远端视频流状态,参看 RemoteVideoState{@link #RemoteVideoState} @param videoStateReason 远端视频流状态改变原因,参看 RemoteVideoStateChangeReason{@link #RemoteVideoStateChangeReason} @note 本回调仅适用于主流,不适用于屏幕流。

Implementation

FutureOr<void> onRemoteVideoStateChanged(dynamic streamId, dynamic streamInfo,
    dynamic videoState, dynamic videoStateReason) async {
  if ($instance == null || $instance is! IRTCEngineEventHandler) {
    return;
  }
  return ($instance as IRTCEngineEventHandler)
      .onRemoteVideoStateChanged
      ?.call(
          streamId.toString(),
          packObject(
              streamInfo,
              () => StreamInfo.fromMap(StreamInfo.deepPackedMapValues(
                  StreamInfo.mapMemberToConstructorParams(streamInfo)))),
          t_RemoteVideoState.android_to_code($p_a
              .RemoteVideoState.values
              .firstWhere(
                  (t) => t.$value == videoState || t.name == videoState)),
          t_RemoteVideoStateChangeReason.android_to_code(
              $p_a.RemoteVideoStateChangeReason.values.firstWhere((t) =>
                  t.$value == videoStateReason ||
                  t.name == videoStateReason)));
}