我正在使用AVAssetDownloadTask下载Fairplay HLS视频并保留解密密钥。下载成功完成后,我尝试使用本地 url 创建一个 urlasset,但在将资产加载到 avplayer 后,它无法播放。 联机时播放相同的视频,以便正确检索并保留解密密钥。
我注意到AVAssetResourceLoaderDelegate没有被离线调用,所以基本上播放器没有检索解密密钥。
任何人都知道可能出了什么问题?
请确保在为资产创建 AVPlayer 实例之前将preloadsEligibleContentKeys
设置为true
。
let asset = AVURLAsset(url: fileURL)
asset.resourceLoader.preloadsEligibleContentKeys = true
asset.resourceLoader.setDelegate(<#delegate#>, queue: DispatchQueue.global())