buildQualityItem method
SettingItem<String>
buildQualityItem(
- List<
String> displayQualities, - List<
AVPTrackInfo> ? trackInfoList
构建清晰度设置项
displayQualities 显示的清晰度列表(单码率时为 'AUTO')
trackInfoList 原始清晰度信息列表
Implementation
SettingItem<String> buildQualityItem(
List<String> displayQualities,
List<AVPTrackInfo>? trackInfoList,
) {
// 创建当前清晰度的 String notifier
final qualityNotifier = _wrapQualityNotifier(trackInfoList);
_wrappedNotifiers.add(qualityNotifier);
return SettingItem<String>(
elementKey: SettingMenuElements.trackInfo,
type: SettingItemType.tags,
title: PlayerI18n.t(PlayerI18nKeys.quality),
tags: displayQualities,
selectedTagListenable: qualityNotifier,
onTagTap: (tag) {
// 只有非 AUTO 模式才切换清晰度
if (tag != 'AUTO' && tag is String && trackInfoList != null) {
final selectedTrack = trackInfoList.firstWhere(
(track) => TrackInfoUtil.getQuality(track) == tag,
orElse: () => trackInfoList.first,
);
controller.selectTrack(selectedTrack);
}
},
);
}