opt: 字幕类别补充

This commit is contained in:
guozhigq
2024-06-19 23:17:36 +08:00
parent c6c4afd359
commit 08e5871bd6
2 changed files with 64 additions and 35 deletions

View File

@ -11,6 +11,12 @@ enum SubtitleType {
enUS, enUS,
// 中文繁体 // 中文繁体
zhTW, zhTW,
//
en,
//
pt,
//
es,
} }
extension SubtitleTypeExtension on SubtitleType { extension SubtitleTypeExtension on SubtitleType {
@ -28,6 +34,12 @@ extension SubtitleTypeExtension on SubtitleType {
return '英文(美国)'; return '英文(美国)';
case SubtitleType.zhTW: case SubtitleType.zhTW:
return '中文(繁体)'; return '中文(繁体)';
case SubtitleType.en:
return '英文';
case SubtitleType.pt:
return '葡萄牙语';
case SubtitleType.es:
return '西班牙语';
} }
} }
} }
@ -47,6 +59,12 @@ extension SubtitleIdExtension on SubtitleType {
return 'en-US'; return 'en-US';
case SubtitleType.zhTW: case SubtitleType.zhTW:
return 'zh-TW'; return 'zh-TW';
case SubtitleType.en:
return 'en';
case SubtitleType.pt:
return 'pt';
case SubtitleType.es:
return 'es';
} }
} }
} }
@ -66,6 +84,12 @@ extension SubtitleCodeExtension on SubtitleType {
return 5; return 5;
case SubtitleType.zhTW: case SubtitleType.zhTW:
return 6; return 6;
case SubtitleType.en:
return 7;
case SubtitleType.pt:
return 8;
case SubtitleType.es:
return 9;
} }
} }
} }

View File

@ -433,42 +433,47 @@ class _HeaderControlState extends State<HeaderControl> {
return AlertDialog( return AlertDialog(
title: const Text('选择字幕'), title: const Text('选择字幕'),
contentPadding: const EdgeInsets.fromLTRB(0, 12, 0, 18), contentPadding: const EdgeInsets.fromLTRB(0, 12, 0, 18),
content: StatefulBuilder(builder: (context, StateSetter setState) { content: StatefulBuilder(
return len == 0 builder: (context, StateSetter setState) {
? const SizedBox( return len == 0
height: 60, ? const SizedBox(
child: Center( height: 60,
child: Text('没有字幕'), child: Center(
), child: Text('没有字幕'),
)
: Column(
mainAxisSize: MainAxisSize.min,
children: [
RadioListTile(
value: -1,
title: const Text('关闭字幕'),
groupValue: tempThemeValue,
onChanged: (value) {
tempThemeValue = value!;
widget.controller?.toggleSubtitle(value);
Get.back();
},
), ),
...widget.videoDetailCtr!.subtitles )
.map((e) => RadioListTile( : SingleChildScrollView(
value: e.code, child: Column(
title: Text(e.title), mainAxisSize: MainAxisSize.min,
groupValue: tempThemeValue, children: [
onChanged: (value) { RadioListTile(
tempThemeValue = value!; value: -1,
widget.controller?.toggleSubtitle(value); title: const Text('关闭字幕'),
Get.back(); groupValue: tempThemeValue,
}, onChanged: (value) {
)) tempThemeValue = value!;
.toList(), widget.controller?.toggleSubtitle(value);
], Get.back();
); },
}), ),
...widget.videoDetailCtr!.subtitles
.map((e) => RadioListTile(
value: e.code,
title: Text(e.title),
groupValue: tempThemeValue,
onChanged: (value) {
tempThemeValue = value!;
widget.controller
?.toggleSubtitle(value);
Get.back();
},
))
.toList(),
],
),
);
},
),
); );
}); });
} }