代码之家  ›  专栏  ›  技术社区  ›  Vasilis D.

存储avurlaste的ckc密钥数据,不播放视频

  •  0
  • Vasilis D.  · 技术社区  · 7 年前

    我想以编程方式调用

    func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool
    

    一个 AVURLAsset 来自 AVPlayer , AVAssetResourceLoaderDelegate ,以便我可以兑现ckc数据,以便我可以脱机播放解密的内容。

    我遵循 https://developer.apple.com/videos/play/wwdc2016/504/

    如果我玩 播放现金和互联网的关键数据关闭 AVURLAsset公司 它再次工作,我可以看到视频离线。

    但我得打电话给警察 resourseLoader 不播放视频的功能。

    我无法执行这些步骤的原因是,为了获取ckc数据,我需要 loadingRequest resourceLoader .

    有没有什么方法可以做到这一点,而不调用play方法,并放弃播放器时,我存储的关键?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Mathieu EDET    7 年前

    也许为了你迟到,我也有同样的问题。尝试设置添加 预可删除内容键 到 是的 当你下载的时候,你的资源加载器。

    let asset = AVURLAsset(url: url)        
    // ADD THIS  LINE TO PRELOAD BEFORE PLAYING
    asset.resourceLoader.preloadsEligibleContentKeys = true
    asset.resourceLoader.setDelegate(self, queue: DispatchQueue.main)
    
    let downloadTask = downloadSession?.makeAssetDownloadTask(asset: asset, assetTitle: "Asset title", assetArtworkData: nil, options: nil)