Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-01-22 15:51:22 +08:00
parent 92e5fae29c
commit b9b54ce4f7
34 changed files with 627 additions and 665 deletions

View File

@@ -1456,7 +1456,7 @@ class VideoDetailController extends GetxController
}
RxList<Subtitle> subtitles = RxList<Subtitle>();
late final Map<int, String> vttSubtitles = {};
final Map<int, ({bool isData, String id})> vttSubtitles = {};
late final RxInt vttSubtitlesIndex = (-1).obs;
late final RxBool showVP = true.obs;
late final RxList<ViewPointSegment> viewPointList = <ViewPointSegment>[].obs;
@@ -1471,19 +1471,21 @@ class VideoDetailController extends GetxController
return;
}
Future<void> setSub(String subtitle) async {
Future<void> setSub(({bool isData, String id}) subtitle) async {
final sub = subtitles[index - 1];
await plPlayerController.videoPlayerController?.setSubtitleTrack(
SubtitleTrack.data(
subtitle,
title: sub.lanDoc,
language: sub.lan,
SubtitleTrack(
subtitle.id,
sub.lanDoc,
sub.lan,
uri: !subtitle.isData,
data: subtitle.isData,
),
);
vttSubtitlesIndex.value = index;
}
String? subtitle = vttSubtitles[index - 1];
({bool isData, String id})? subtitle = vttSubtitles[index - 1];
if (subtitle != null) {
await setSub(subtitle);
} else {
@@ -1491,8 +1493,9 @@ class VideoDetailController extends GetxController
subtitles[index - 1].subtitleUrl!,
);
if (!isClosed && result != null) {
vttSubtitles[index - 1] = result;
await setSub(result);
final subtitle = (isData: true, id: result);
vttSubtitles[index - 1] = subtitle;
await setSub(subtitle);
}
}
}
@@ -1665,6 +1668,8 @@ class VideoDetailController extends GetxController
?..removeListener(scrollListener)
..dispose();
animController?.dispose();
subtitles.clear();
vttSubtitles.clear();
super.onClose();
}