feat(subtitles): optionally anchor text subtitles to the screen bottom

Adds an "Anchor to Screen" toggle under Subtitle Styling (Android +
ExoPlayer only, default off). When enabled, the text SubtitleView is
sized to the full container instead of the letterboxed video rect, so
SRT/VTT/mov_text cues render in the black bars below widescreen video
and font size and the position setting become relative to the physical
screen height. Bitmap (PGS/VOB) and ASS/libass rendering are unchanged;
mpv already places plaintext subtitles in the margins by default.

close #1730
This commit is contained in:
edde746
2026-08-09 17:14:34 +02:00
parent 8ad13e94cf
commit 8e5279a487
35 changed files with 151 additions and 13 deletions
+7
View File
@@ -377,6 +377,12 @@ class SettingsService extends BaseSharedPreferencesService {
);
static const subtitleBold = BoolPref('subtitle_bold');
static const subtitleItalic = BoolPref('subtitle_italic');
/// Render text subtitles (SRT/VTT/mov_text) anchored to the physical screen
/// instead of the video rect, so they land in the letterbox bars of
/// widescreen video (#1730). ExoPlayer backend only; mpv already places
/// plaintext subtitles in the margins by default (sub-use-margins=yes).
static const subtitleAnchorToScreen = BoolPref('subtitle_anchor_to_screen');
static const cleanedOldImageCache = BoolPref('cleaned_old_image_cache');
static const rememberTrackSelections = BoolPref('remember_track_selections', defaultValue: true);
@@ -935,6 +941,7 @@ class SettingsService extends BaseSharedPreferencesService {
maxVolume,
downmixCenterBoost,
subtitlePosition,
subtitleAnchorToScreen,
defaultPlaybackSpeed,
defaultBoxFitMode,
themeMode,