0

我正在使用AVContentKeySessionAVContentKeySessionDelegate管理 iOS 上公平竞争的密钥。contentKeySession didProvide keyRequest: AVPersistableContentKeyRequest正在调用委托方法。应用证书、服务器播放上下文和内容密钥上下文的所有请求都成功返回。在此之后,以下代码不会引发错误。

do {
    let persistentKeyData = try keyRequest.persistableContentKey(fromKeyVendorResponse: contentKeyContextData, options: nil)
    let keyResponse = AVContentKeyResponse(fairPlayStreamingKeyResponseData: persistentKeyData)
    keyRequest.processContentKeyResponse(keyResponse)
} catch {
    keyRequest.processContentKeyResponseError(error)
}

看来我应该期待两种委托方法中的任何一种,contentKeyRequestDidSucceed或者contentKeyRequest didFailWithError应该在keyRequest收到响应时调用。两者都没有发生。我可以didFailWithError通过传入格式不正确的contentKeyContext.

播放不受 DRM 保护,因为我可以截取播放器的屏幕截图并且它不会被空白。

什么时候keyRequest.processContentKeyResponse被调用而没有抛出错误并且没有成功播放是什么意思?注意:会话确实有一个有效的 AVURLAsset 接收者。什么应该触发完成委托方法被调用?

4

0 回答 0