From d4cd66dd59bb6ff4c763c2cdec604d22e1592c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Velad=20Galv=C3=A1n?= Date: Tue, 16 Jan 2024 09:44:11 +0100 Subject: [PATCH] fix: When disconnecting from chromecast, subtitles are turned off (#6103) Fixes https://github.com/shaka-project/shaka-player/issues/4036 --- lib/cast/cast_proxy.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/cast/cast_proxy.js b/lib/cast/cast_proxy.js index 4a0c2f4370..a01250f9dc 100644 --- a/lib/cast/cast_proxy.js +++ b/lib/cast/cast_proxy.js @@ -496,6 +496,16 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget { startTime = this.sender_.get('video', 'currentTime'); } + let activeTextTrack; + const textTracks = this.sender_.get('player', 'getTextTracks')(); + + if (textTracks && textTracks.length) { + activeTextTrack = textTracks.find((t) => t.active); + } + + const isTextTrackVisible = + this.sender_.get('player', 'isTextTrackVisible')(); + // Now load the manifest, if present. if (assetUri) { // Don't autoplay the content until we finish setting up initial state. @@ -527,6 +537,14 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget { /** @type {Object} */(this.localPlayer_)[setter](value); } + this.localPlayer_.setTextTrackVisibility(isTextTrackVisible); + if (activeTextTrack) { + this.localPlayer_.selectTextLanguage( + activeTextTrack.language, + activeTextTrack.roles, + activeTextTrack.forced); + } + // Restore the original autoplay setting. this.localVideo_.autoplay = autoplay; if (assetUri) {