refactor: extract TrackManager, fix subtitle bugs

- Extract track lifecycle logic from VideoPlayerScreen (3248→2928 lines) into TrackManager
- Parse isDefault/isForced for subtitle tracks in parseTrackList
- Emit forced flag from ExoPlayer's emitTrackList
- Fix detectSubtitleMimeType failing on URLs with query params
- Add missing external_ ID prefix in ExoPlayer addSubtitleTrack
- Replace polling loop with stream in selectAndApplyTracks
- Handle play() failure in resumeAfterSubtitleLoad
- Handle addExternalSubtitles failure in onBackendSwitched
This commit is contained in:
edde746
2026-03-20 03:32:32 +01:00
parent d64c72f40e
commit 2d37d37596
9 changed files with 562 additions and 447 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ class PlayerNative extends PlayerBase {
}
@override
Future<void> open(Media media, {bool play = true, bool isLive = false}) async {
Future<void> open(Media media, {bool play = true, bool isLive = false, List<SubtitleTrack>? externalSubtitles}) async {
if (disposed) return;
await _ensureInitialized();
setSeekable(false);