diff --git a/lib/ads/interstitial_ad_manager.js b/lib/ads/interstitial_ad_manager.js index 58880bba25..bd47755a18 100644 --- a/lib/ads/interstitial_ad_manager.js +++ b/lib/ads/interstitial_ad_manager.js @@ -674,12 +674,13 @@ shaka.ads.InterstitialAdManager = class { } }); try { + this.updatePlayerConfig_(); if (interstitial.playoutLimit) { playoutLimitTimer = new shaka.util.Timer(() => { ad.skip(); }).tickAfter(interstitial.playoutLimit); + this.player_.configure('playRangeEnd', interstitial.playoutLimit); } - this.updatePlayerConfig_(); await this.player_.attach(this.video_); if (this.preloadManagerInterstitials_.has(interstitial)) { const preloadManager = @@ -693,6 +694,14 @@ shaka.ads.InterstitialAdManager = class { } else { await this.player_.load(interstitial.uri); } + if (interstitial.playoutLimit) { + if (playoutLimitTimer) { + playoutLimitTimer.stop(); + } + playoutLimitTimer = new shaka.util.Timer(() => { + ad.skip(); + }).tickAfter(interstitial.playoutLimit); + } const loadTime = (Date.now() - startTime) / 1000; this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED, (new Map()).set('loadTime', loadTime)));