Posts

Post marked as solved
3 Replies
2.4k Views
Issue: I am supporting an iOS application that streams Fairplay DRM protected content. On iOS 16 devices, I am seeing intermittent exceptions thrown when trying to process the CKC returned by the license server. The thrown exception is as follows: -[AVContentKeyRequest processContentKeyResponse:] AVContentKeySession's keySystem is not same as that of keyResponse This issue does not occur on older devices (we support iOS 13, 14, 15) I am unable to find documentation about this error so any insight is appreciated: High-Level Code Overview Use ContentKeyRequest to request an application certificate Use returned Cert to call makeStreamingContentKeyRequestData Use returned data to request FairPlay license Use returned CKC to generate AVContentKeyResponse (i.e. AVContentKeyResponse(fairPlayStreamingKeyResponseData:_)) Call processContentKeyResponse(_) App crash/exception thrown when callling processContentKeyResponse I am seeing other issues related to DRM and iOS 16 but these are specific to downloaded and offline content which do not match my use case.
Posted Last updated
.
Post not yet marked as solved
2 Replies
960 Views
eventplaylist.txt liveplaylist.txt I want to use AVPlayerInterstitialEvent to schedule a priority alert during Live content. I set the interstitial event to the events property of AVPlayerInterstitialEventController but the primary content never switches to the event at the specified Date. I am able to successfully set an event when the primary content is VOD and the event plays as expected. I have confirmed: The HLS playlist for the primary asset contains EXT-X-PROGRAM-DATE-TIME tag so the Event can be mapped into the primaryItem timeline. The date property of the AVPlayerInterstitialEvent is sufficiently ahead (> 60 seconds) of the current playback time. Using Charles Proxy, I do not see any player networking for the Event's URL. Here is a code snippet to show how the event is created and scheduled: let currentItem = player.currentItem let event = AVPlayerInterstitialEvent(primaryItem: currentItem, \identifier: evt.id, date: evt.date, templateItems: [AVPlayerItem(url: evt.url)], restrictions: [], resumptionOffset: CMTime.indefinite) event.willPlayOnce = true eventController.events = [event] I have also attached example HLS for the Live content and Event. Any help is appreciated.
Posted Last updated
.