buildQualityItem method

SettingItem<String> buildQualityItem(
  1. List<String> displayQualities,
  2. 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);
      }
    },
  );
}