diff --git a/src/dash-playlist-loader.js b/src/dash-playlist-loader.js index 59010c4c4..aa7542586 100644 --- a/src/dash-playlist-loader.js +++ b/src/dash-playlist-loader.js @@ -231,6 +231,8 @@ export default class DashPlaylistLoader extends EventTarget { dispose() { this.stopRequest(); this.loadedPlaylists_ = {}; + window.clearTimeout(this.minimumUpdatePeriodTimeout_); + window.clearTimeout(this.mediaRequest_); window.clearTimeout(this.mediaUpdateTimeout); } @@ -404,6 +406,7 @@ export default class DashPlaylistLoader extends EventTarget { pause() { this.stopRequest(); window.clearTimeout(this.mediaUpdateTimeout); + window.clearTimeout(this.minimumUpdatePeriodTimeout_); if (this.state === 'HAVE_NOTHING') { // If we pause the loader before any data has been retrieved, its as if we never // started, so reset to an unstarted state. @@ -413,6 +416,7 @@ export default class DashPlaylistLoader extends EventTarget { load(isFinalRendition) { window.clearTimeout(this.mediaUpdateTimeout); + window.clearTimeout(this.minimumUpdatePeriodTimeout_); const media = this.media(); @@ -626,7 +630,7 @@ export default class DashPlaylistLoader extends EventTarget { // would be to update the manifest at the same rate that the media playlists // are "refreshed", i.e. every targetDuration. if (this.master && this.master.minimumUpdatePeriod) { - window.setTimeout(() => { + this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => { this.trigger('minimumUpdatePeriod'); }, this.master.minimumUpdatePeriod); } @@ -698,7 +702,7 @@ export default class DashPlaylistLoader extends EventTarget { // update loader's sidxMapping with parsed sidx box this.sidxMapping_[sidxKey].sidx = sidx; - window.setTimeout(() => { + this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => { this.trigger('minimumUpdatePeriod'); }, this.master.minimumUpdatePeriod); @@ -714,7 +718,7 @@ export default class DashPlaylistLoader extends EventTarget { } } - window.setTimeout(() => { + this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => { this.trigger('minimumUpdatePeriod'); }, this.master.minimumUpdatePeriod); });