onPerformanceAlarms method

FutureOr<void> onPerformanceAlarms(
  1. dynamic streamId,
  2. dynamic streamInfo,
  3. dynamic mode,
  4. dynamic reason,
  5. dynamic data,
)
override

@detail callback @author panjian.fishing @brief 本地未通过 setPublishFallbackOption{@link #RTCEngine#setPublishFallbackOption} 开启发布性能回退,检测到设备性能不足时,收到此回调。
本地通过 setPublishFallbackOption{@link #RTCEngine#setPublishFallbackOption} 开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。 @param streamId 流 ID @param streamInfo 流信息,参看 StreamInfo{@link #StreamInfo} @param mode 指示本地是否开启发布回退功能。参看 PerformanceAlarmMode{@link #PerformanceAlarmMode}
- 当发布端未开启发布性能回退时,mode 值为 NORMAL。 - 当发布端开启发布性能回退时,mode 值为 SIMULCAST。 @param reason 告警原因,参看 PerformanceAlarmReason{@link #PerformanceAlarmReason} @param data 性能回退相关数据,详见 SourceWantedData{@link #SourceWantedData}。

Implementation

FutureOr<void> onPerformanceAlarms(dynamic streamId, dynamic streamInfo,
    dynamic mode, dynamic reason, dynamic data) async {
  if ($instance == null || $instance is! IRTCEngineEventHandler) {
    return;
  }
  return ($instance as IRTCEngineEventHandler).onPerformanceAlarms?.call(
      streamId.toString(),
      packObject(
          streamInfo,
          () => StreamInfo.fromMap(StreamInfo.deepPackedMapValues(
              StreamInfo.mapMemberToConstructorParams(streamInfo)))),
      t_PerformanceAlarmMode.android_to_code($p_a.PerformanceAlarmMode.values
          .firstWhere((t) => t.$value == mode || t.name == mode)),
      t_PerformanceAlarmReason.android_to_code($p_a
          .PerformanceAlarmReason.values
          .firstWhere((t) => t.$value == reason || t.name == reason)),
      packObject(
          data,
          () => SourceWantedData.fromMap(SourceWantedData.deepPackedMapValues(
              SourceWantedData.mapMemberToConstructorParams(data)))));
}