diff --git a/lib/player.js b/lib/player.js index 7396f63b91..f38057ca6f 100644 --- a/lib/player.js +++ b/lib/player.js @@ -2929,22 +2929,36 @@ shaka.Player = class extends shaka.util.FakeEventTarget { if (mediaElement.textTracks) { this.createTextDisplayer_(); - this.loadEventManager_.listen( - mediaElement, 'enterpictureinpicture', () => { - const track = this.getFilteredTextTracks_() - .find((t) => t.mode !== 'disabled'); - if (track) { - track.mode = 'showing'; - } - }); - this.loadEventManager_.listen( - mediaElement, 'leavepictureinpicture', () => { - const track = this.getFilteredTextTracks_() - .find((t) => t.mode !== 'disabled'); - if (track) { - track.mode = 'hidden'; - } - }); + const setShowingMode = () => { + const track = this.getFilteredTextTracks_() + .find((t) => t.mode !== 'disabled'); + if (track) { + track.mode = 'showing'; + } + }; + const setHiddenMode = () => { + const track = this.getFilteredTextTracks_() + .find((t) => t.mode !== 'disabled'); + if (track) { + track.mode = 'hidden'; + } + }; + this.loadEventManager_.listen(mediaElement, 'enterpictureinpicture', + () => setShowingMode()); + this.loadEventManager_.listen(mediaElement, 'leavepictureinpicture', + () => setHiddenMode()); + if (mediaElement.remote) { + this.loadEventManager_.listen(mediaElement.remote, 'connect', + () => setHiddenMode()); + this.loadEventManager_.listen(mediaElement.remote, 'connecting', + () => setHiddenMode()); + this.loadEventManager_.listen(mediaElement.remote, 'disconnect', + () => setHiddenMode()); + } else if ('webkitCurrentPlaybackTargetIsWireless' in mediaElement) { + this.loadEventManager_.listen(mediaElement, + 'webkitcurrentplaybacktargetiswirelesschanged', + () => setHiddenMode()); + } } // Add all media element listeners. this.addBasicMediaListeners_(mediaElement, startTimeOfLoad);