diff --git a/assets/css/sabr_player.css b/assets/css/sabr_player.css index 6495f53a..8065da80 100644 --- a/assets/css/sabr_player.css +++ b/assets/css/sabr_player.css @@ -53,11 +53,12 @@ object-fit: contain !important; } -/* IMPORTANT: Force controls to be visible */ +/* Let Shaka auto-hide the controls when idle. (Previously these were forced to + opacity:1 !important, so the control bar / progress bar never disappeared.) Keep + only the fade transition. */ .shaka-controls-button-panel, .shaka-scrim-container, .shaka-play-button { - opacity: 1 !important; transition: opacity cubic-bezier(.4, 0, .6, 1) .6s; } @@ -89,7 +90,6 @@ .shaka-seek-bar-container { height: 5px !important; margin-bottom: 10px; - opacity: 1 !important; } .shaka-seek-bar { diff --git a/assets/js/sabr_player.js b/assets/js/sabr_player.js index 4e587d08..47f1ff22 100644 --- a/assets/js/sabr_player.js +++ b/assets/js/sabr_player.js @@ -713,6 +713,21 @@ var SABRPlayer = (function () { loadedListenerInstalled = true; } + // Default to the ORIGINAL audio language (e.g. English), not a dubbed track. + // Without a preferredAudioLanguage, shaka picks the first variant (often a dub); + // it doesn't honor our `primary`/original flag on its own. Derive the original + // language from the adaptive format flagged is_original and set it as preferred. + if (!isLive && streamingData.adaptive_formats) { + var originalAudioLang = null; + for (var afi = 0; afi < streamingData.adaptive_formats.length; afi++) { + var af = streamingData.adaptive_formats[afi]; + if (af.is_original && af.language) { originalAudioLang = af.language; break; } + } + if (originalAudioLang) { + try { player.configure('preferredAudioLanguage', originalAudioLang); } catch (e) {} + } + } + var startTime = options.startTime; if (startTime === undefined && options.savePlayerPos !== false) { startTime = getPlaybackPosition(videoId);