onRemoteVideoStateChanged method

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

@detail callback @author shenpengliang @brief When the state of a remote video stream changes, users in the room who subscribe to this stream receive the event. @param streamId Remote stream ID @param streamInfo Remote Stream Information. See StreamInfo{@link #StreamInfo} @param videoState Remote video stream status. See RemoteVideoState{@link #RemoteVideoState} @param videoStateReason Remote video stream status change reason. See RemoteVideoStateChangeReason{@link #RemoteVideoStateChangeReason} @note The callback works for video stream captured by the camera, not for screen stream.

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