opt: 字幕渲染逻辑

This commit is contained in:
guozhigq
2024-06-29 17:12:06 +08:00
parent ea7ae15384
commit eaae622f95
6 changed files with 11 additions and 140 deletions

View File

@ -123,7 +123,7 @@ class PlPlayerController {
PreferredSizeWidget? headerControl;
PreferredSizeWidget? bottomControl;
Widget? danmuWidget;
late RxList subtitles;
RxList subtitles = [].obs;
String videoType = 'archive';
/// 数据加载监听
@ -642,10 +642,6 @@ class PlPlayerController {
const Duration(seconds: 1),
() => videoPlayerServiceHandler.onPositionChange(event));
}),
// onSubTitleOpenChanged.listen((bool event) {
// toggleSubtitle(event ? subTitleCode.value : -1);
// })
],
);
}
@ -1049,25 +1045,6 @@ class PlPlayerController {
void toggleSubtitle(int code) {
_subTitleOpen.value = code != -1;
_subTitleCode.value = code;
// if (code == -1) {
// // 关闭字幕
// _subTitleOpen.value = false;
// _subTitleCode.value = code;
// _videoPlayerController?.setSubtitleTrack(SubtitleTrack.no());
// return;
// }
// final SubTitlteItemModel? subtitle = subtitles?.firstWhereOrNull(
// (element) => element.code == code,
// );
// _subTitleOpen.value = true;
// _subTitleCode.value = code;
// _videoPlayerController?.setSubtitleTrack(
// SubtitleTrack.data(
// subtitle!.content!,
// title: subtitle.title,
// language: subtitle.lan,
// ),
// );
}
void querySubtitleContent(double progress) {
@ -1079,7 +1056,7 @@ class PlPlayerController {
return;
}
final SubTitlteItemModel? subtitle = subtitles.firstWhereOrNull(
(element) => element.code == subTitleCode.value,
(element) => element.id == subTitleCode.value,
);
if (subtitle != null && subtitle.body!.isNotEmpty) {
for (var content in subtitle.body!) {