onPerformanceAlarms method
FutureOr<void>
onPerformanceAlarms(
- dynamic streamId,
- dynamic streamInfo,
- dynamic mode,
- dynamic reason,
- 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)))));
}