我正在使用AVContentKeySession
和AVContentKeySessionDelegate
管理 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 接收者。什么应该触发完成委托方法被调用?