rtcEngine$onPerformanceAlarms$info$mode$reason$sourceWantedData method

FutureOr<void> rtcEngine$onPerformanceAlarms$info$mode$reason$sourceWantedData(
  1. dynamic engine,
  2. dynamic streamId,
  3. dynamic info,
  4. dynamic mode,
  5. dynamic reason,
  6. dynamic data,
)
override

@detail callback @author panjian.fishing @brief 本地未通过 setPublishFallbackOption:{@link #ByteRTCEngine#setPublishFallbackOption} 开启发布性能回退,检测到设备性能不足时,收到此回调。
本地通过 setPublishFallbackOption:{@link #ByteRTCEngine#setPublishFallbackOption} 开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。 @param engine ByteRTCEngine 实例 @param streamId 流 ID @param info 流信息, 参看 ByteRTCStreamInfo{@link #ByteRTCStreamInfo}。 @param mode 指示本地是否开启发布回退功能。参看 ByteRTCPerformanceAlarmMode{@link #ByteRTCPerformanceAlarmMode}
- 当发布端未开启发布性能回退时,mode 值为 ByteRTCPerformanceAlarmModeNormal。 - 当发布端开启发布性能回退时,mode 值为 ByteRTCPerformanceAlarmModeSimulcast。 @param reason 告警原因,参看 ByteRTCPerformanceAlarmReason{@link #ByteRTCPerformanceAlarmReason} @param data 性能回退相关数据,详见 ByteRTCSourceWantedData{@link #ByteRTCSourceWantedData}。

Implementation

FutureOr<void>
    rtcEngine$onPerformanceAlarms$info$mode$reason$sourceWantedData(
        dynamic engine,
        dynamic streamId,
        dynamic info,
        dynamic mode,
        dynamic reason,
        dynamic data) async {
  if ($instance == null || $instance is! IRTCEngineEventHandler) {
    return;
  }
  return ($instance as IRTCEngineEventHandler).onPerformanceAlarms?.call(
      streamId.toString(),
      packObject(
          info,
          () => StreamInfo.fromMap(StreamInfo.deepPackedMapValues(
              StreamInfo.mapMemberToConstructorParams(info)))),
      t_PerformanceAlarmMode.ios_to_code($p_i
          .ByteRTCPerformanceAlarmMode.values
          .firstWhere((t) => t.$value == mode || t.name == mode)),
      t_PerformanceAlarmReason.ios_to_code($p_i
          .ByteRTCPerformanceAlarmReason.values
          .firstWhere((t) => t.$value == reason || t.name == reason)),
      packObject(
          data,
          () => SourceWantedData.fromMap(SourceWantedData.deepPackedMapValues(
              SourceWantedData.mapMemberToConstructorParams(data)))));
}