opt: 字幕类别补充

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

View File

@ -11,6 +11,12 @@ enum SubtitleType {
enUS,
// 中文繁体
zhTW,
//
en,
//
pt,
//
es,
}
extension SubtitleTypeExtension on SubtitleType {
@ -28,6 +34,12 @@ extension SubtitleTypeExtension on SubtitleType {
return '英文(美国)';
case SubtitleType.zhTW:
return '中文(繁体)';
case SubtitleType.en:
return '英文';
case SubtitleType.pt:
return '葡萄牙语';
case SubtitleType.es:
return '西班牙语';
}
}
}
@ -47,6 +59,12 @@ extension SubtitleIdExtension on SubtitleType {
return 'en-US';
case SubtitleType.zhTW:
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;
case SubtitleType.zhTW:
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(
title: const Text('选择字幕'),
contentPadding: const EdgeInsets.fromLTRB(0, 12, 0, 18),
content: StatefulBuilder(builder: (context, StateSetter setState) {
return len == 0
? const SizedBox(
height: 60,
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();
},
content: StatefulBuilder(
builder: (context, StateSetter setState) {
return len == 0
? const SizedBox(
height: 60,
child: Center(
child: Text('没有字幕'),
),
...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(),
],
);
}),
)
: SingleChildScrollView(
child: 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(
value: e.code,
title: Text(e.title),
groupValue: tempThemeValue,
onChanged: (value) {
tempThemeValue = value!;
widget.controller
?.toggleSubtitle(value);
Get.back();
},
))
.toList(),
],
),
);
},
),
);
});
}