gpt4 book ai didi

swift - 错误域=AVFoundationErrorDomain 代码=-11835 "Cannot Open"

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:26 29 4
gpt4 key购买 nike

我目前正在尝试实现一项服务,以在 tvOS 应用程序上使用 FairPlay 流处理 DRM。这是我的工作流程:

  1. 我将应用程序证书作为数据获取

  2. 从这个证书我得到了 SPC 数据,使用:

    resourceLoadingRequest.streamingContentKeyRequestData(forApp: applicationCertificate, contentIdentifier: assetIDData, options: resourceLoadingRequestOptions)
  3. 从编码为 base64Data 的 SPC 数据,我在我们的服务器上请求 POST(有效载荷中有 SPC)以获得给我 CKD 数据的许可证

  4. 然后,当我获得 CKC 数据时,我将按如下方式使用它们:

     guard let dataRequest = resourceLoadingRequest.dataRequest else {
    print("no data is being requested in loadingRequest")
    let error = NSError(domain: AssetLoaderDelegate.errorDomain, code: -6, userInfo: nil)
    resourceLoadingRequest.finishLoading(with: error)
    return
    }
    dataRequest.respond(with: datas)
    resourceLoadingRequest.finishLoading()

但是在这些步骤之后我得到了错误:

Error Domain=AVFoundationErrorDomain Code=-11835 "Cannot Open" UserInfo={NSUnderlyingError=0x170440de0 {Error Domain=NSOSStatusErrorDomain Code=-42681 "(null)"}, NSLocalizedFailureReason=This content is not authorized., NSLocalizedDescription=Cannot Open}

有没有人有想法或提示?

附加信息:

  • 播放过程适用于不 protected 内容。

  • playerItem.errorLog() 返回 nil。

  • playerItem.status == .failed 返回 true。

  • 所有服务器端进程似乎都正常,因为它已经用于网站和智能电视。

最佳答案

我最近遇到了这个完全相同的问题。问题是从 streamingContentKeyRequestData(forApp... 返回的 CKC 响应数据不仅仅是数据,它是 base 64 编码的字符串数据。您需要做的就是在响应数据请求之前对其进行解码:

 dataRequest.respond(with: Data(base64Encoded: datas)!)

对于生产代码,您需要正确处理可选性。希望这可以帮助!

关于swift - 错误域=AVFoundationErrorDomain 代码=-11835 "Cannot Open",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493872/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com