【发布时间】:2017-11-09 00:48:22
【问题描述】:
我目前正在尝试将加密的 HLS 流下载到 iOS 设备。 iOS 10 似乎支持开箱即用(请参阅https://developer.apple.com/videos/play/wwdc2016/504),但我无法让它工作。
我基本上使用 Apple 示例代码 (https://developer.apple.com/library/content/samplecode/HLSCatalog/Introduction/Intro.html) 中的 AssetPersistenceManager,它调用 AVAssetDownloadURLSession 的 makeAssetDownloadTask。它在在线模式下工作正常,但从存储的文件播放资产时播放失败。
现在 WWDC 视频表明您应该使用 AVAssetResourceLoaderDelegate 来提供离线加密密钥。由于AVAssetResourceLoader 似乎不支持http 和https(参见例如AVAssetResourceLoaderDelegate methods not working on device),我尝试为密钥URI 使用自定义方案并在AVAssetResourceLoaderDelegate 的shouldWaitForLoadingOfRequestedResource 中提供本地aes 密钥。在这里它在在线流式传输时也可以工作,但无论我是使用远程密钥 URL 还是用本地密钥覆盖它,AVPlayer 总是无法离线播放 AVAsset。
有没有人有下载加密 HLS 的经验,或者有关于如何提供加密密钥以离线播放本地加密 AVURLAsset 的工作示例?
我正在使用的示例 HSL 文件在这里:http://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-aes.ism/.m3u8
【问题讨论】:
-
感谢您的反馈,我编辑了问题以包含所有新信息。
-
我也有同样的问题,但在我的情况下,HLS 视频在离线模式下可以正常播放。如果我尝试在在线模式下播放它,它只会加载并停止而不会出现任何错误。
-
你找到解决方案了吗,离线下载加密视频并播放。如果您有示例代码,请提供。
-
@AnjaneyuluBattula 不,抱歉,我们没有使用 hls 进行本地存储。
标签: ios iphone encryption avplayer offline