diff --git a/lib/media/streaming_engine.js b/lib/media/streaming_engine.js index 3b549b345..0428587ba 100644 --- a/lib/media/streaming_engine.js +++ b/lib/media/streaming_engine.js @@ -543,7 +543,12 @@ shaka.media.StreamingEngine = class { // handle a Period transition. Simply ignore the given stream, assuming that // Player will select the same track in onChooseStreams. const periodIndex = this.findPeriodContainingStream_(stream); - if (clearBuffer && periodIndex != mediaState.needPeriodIndex) { + const mediaStates = Array.from(this.mediaStates_.values()); + const needSamePeriod = mediaStates.every((ms) => { + return ms.needPeriodIndex == mediaState.needPeriodIndex; + }); + if (clearBuffer && periodIndex != mediaState.needPeriodIndex && + needSamePeriod) { shaka.log.debug('switch: switching to stream in another Period; ' + 'clearing buffer and changing Periods'); // handlePeriodTransition_ will be called on the next update because the