feat: secondary subtitle tracks

close #625
This commit is contained in:
edde746
2026-03-04 09:35:36 +01:00
parent 3a76754af9
commit 13b5d7bae8
15 changed files with 353 additions and 96 deletions
+15
View File
@@ -753,6 +753,7 @@ class TrackSelectionService {
Future<void> selectAndApplyTracks({
AudioTrack? preferredAudioTrack,
SubtitleTrack? preferredSubtitleTrack,
SubtitleTrack? preferredSecondarySubtitleTrack,
double? defaultPlaybackSpeed,
Function(AudioTrack)? onAudioTrackChanged,
Function(SubtitleTrack)? onSubtitleTrackChanged,
@@ -798,6 +799,20 @@ class TrackSelectionService {
onSubtitleTrackChanged(selectedSubtitleTrack);
}
// Apply preferred secondary subtitle track if provided (mpv-only)
if (preferredSecondarySubtitleTrack != null &&
preferredSecondarySubtitleTrack.id != 'no' &&
player.supportsSecondarySubtitles &&
realSubtitleTracks.isNotEmpty) {
final secondaryMatch = findBestSubtitleMatch(realSubtitleTracks, preferredSecondarySubtitleTrack);
if (secondaryMatch != null && secondaryMatch.id != 'no') {
appLogger.d(
'Secondary subtitle: ${secondaryMatch.title ?? secondaryMatch.language ?? "Track ${secondaryMatch.id}"}',
);
player.selectSecondarySubtitleTrack(secondaryMatch);
}
}
// Apply default playback speed from settings
if (defaultPlaybackSpeed != null && defaultPlaybackSpeed != 1.0) {
player.setRate(defaultPlaybackSpeed);