diff --git a/lib/player.js b/lib/player.js index e103c32cf6..e15b6d9fd7 100644 --- a/lib/player.js +++ b/lib/player.js @@ -3402,6 +3402,8 @@ shaka.Player = class extends shaka.util.FakeEventTarget { const tracks = []; + let activeTracks = 0; + // Convert each variant to a track. for (const variant of this.manifest_.variants) { if (!shaka.util.StreamUtils.isPlayable(variant)) { @@ -3410,10 +3412,22 @@ shaka.Player = class extends shaka.util.FakeEventTarget { const track = shaka.util.StreamUtils.variantToTrack(variant); track.active = variant == currentVariant; + if (!track.active && activeTracks != 1 && currentVariant != null && + variant.video == currentVariant.video && + variant.audio == currentVariant.audio) { + track.active = true; + } + + if (track.active) { + activeTracks++; + } tracks.push(track); } + goog.asserts.assert(activeTracks <= 1, + 'It should only have one active track'); + return tracks; } else if (this.video_ && this.video_.audioTracks) { // Safari's native HLS always shows a single element in videoTracks.