Explore dynamic pre-rolls and mid-rolls in HLS

RSS for tag

Discuss the WWDC21 session Explore dynamic pre-rolls and mid-rolls in HLS.

View Session

Posts under wwdc21-10140 tag

3 Posts
Sort by:
Post not yet marked as solved
1 Replies
136 Views
I tried using HLS interstitials for VOD. I tried both examples shown here https://developer.apple.com/streaming/GettingStartedWithHLSInterstitials.pdf and built player using AVFoundation APIs. There are 2 ways to do it use DATERANGE tag on server side, in this case AVPlayerInterstitialEvent will be created by Player automatically, whenever it encounters DATERANGE tag having interstitials. write code on player side and create AVPlayerInterstitialEvent object to schedule interstitials. I tried both approaches and observed that in case of VOD interstitials are scheduled and played correctly as per defined schedule. but interstitials are fetched right after playback. i.e manifest on load event example : let's say interstitial is scheduled after 20 minutes but player will fetch adURL right after playback starts. is this bug ? how can we delay fetch of adURL/interstitials
Posted
by
Post not yet marked as solved
0 Replies
182 Views
Simple AVPlayer sample in swift for iOS 15.4.1 Interstitial specified via EXT-X-DATERANGE tag. Interstitial displayed as expected but no notifications generated for either AVPlayerInterstitialEventMonitor.currentEventDidChangeNotification or .eventsDidChangeNotification? Tested on both a simulator and a device?? Suggestions?
Posted
by
Post not yet marked as solved
0 Replies
276 Views
Specifically I am trying to set .constrainsSeekingForwardInPrimaryContent when creating an AVPlayerInterstitialEvent but it has no effect on iOS. I don't have access to tvOS at the moment to try it there but according to the docs it should work on iOS 15 and >. let event = AVPlayerInterstitialEvent( primaryItem: App.player!.currentItem!, identifier: ad.podId, time: CMTime(seconds: ad.timeOffsetSec!, preferredTimescale: 1), templateItems: adPodTemplates, // sadly on iOS these restrictions seem to simply not work restrictions: [ .constrainsSeekingForwardInPrimaryContent, .requiresPlaybackAtPreferredRateForAdvancement ], resumptionOffset: .zero, playoutLimit: .invalid) Thoughts?
Posted
by