Post

Replies

Boosts

Views

Activity

iOS 16 - Exception Thrown for processContentKeyResponse
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.
3
0
2.9k
Jul ’23
AVPlayerInterstitialEvent Does Not Play For Live Playlist
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.
2
1
1.3k
Apr ’23
iOS 16 - Exception Thrown for processContentKeyResponse
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.
Replies
3
Boosts
0
Views
2.9k
Activity
Jul ’23
AVPlayerInterstitialEvent Does Not Play For Live Playlist
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.
Replies
2
Boosts
1
Views
1.3k
Activity
Apr ’23