ios 获取密钥请求数据时出错:AVFoundation错误域原因:可选(“发生未知错误(-42650)”)

pexxcrt2  于 2022-12-01  发布在  iOS
关注(0)|答案(2)|浏览(666)

我正在实现Apple Fireplay DRM以向设备提供加密内容。我能够成功加载证书,但当我尝试从AVAssetResourceLoadingRequest获取SPC数据时,我收到此错误。

Error obtaining key request data: AVFoundationErrorDomain reason: Optional("An unknown error occurred (-42650)")

以下是检索SPC内容的代码

let spcData: Data!

    do {
        /* 
         To obtain the Server Playback Context (SPC), we call 
         AVAssetResourceLoadingRequest.streamingContentKeyRequestData(forApp:contentIdentifier:options:)
         using the information we obtained earlier.
         */
        spcData = try resourceLoadingRequest.streamingContentKeyRequestData(forApp: applicationCertificate, contentIdentifier: assetIDData, options: resourceLoadingRequestOptions)
    } catch let error as NSError {
        print("Error obtaining key request data: \(error.domain) reason: \(error.localizedFailureReason)")
        resourceLoadingRequest.finishLoading(with: error)
        return
    }

我已经搜索了错误代码:42650在苹果开发者论坛上,但没有运气!

2w2cym1i

2w2cym1i1#

我也遇到了这个错误。在我的例子中,我使用了错误的数据格式(resourceLoadingRequest.streamingContentKeyRequestData(forApp:contentIdentifier:options:)函数中的appIdentifier参数)生成了applicationCertificate。给我的证书是base64编码的。所以我需要使用Data(base64Encoded: yourCertificateString)创建数据。

disho6za

disho6za2#

我也有这个问题。我没有使用持久键,我复制粘贴了示例代码,但我忘了更改
AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey: true更改为false
在此之后,它开始工作。

相关问题