HLS 离线用于事件播放列表



我正在尝试Apple的HLS离线功能,以尝试从事件播放列表本地下载和播放视频。但是,我只能在视频点播播放列表时离线下载和播放视频。问题是:离线HLS是否仅支持VOD播放列表?

关于我的环境的一些上下文:

  1. 我依靠此示例代码来下载和播放我的视频。
  2. 视频播放得很好。
  3. 下载开始后立即调用委托方法URLSession:assetDownloadTask:didFinishDownloadingToURL:,这令人惊讶。这就是让我认为它不受支持的原因。
    3.1 检查该 URL ^^,它指向一个movpkg文件,但在应用容器上找不到任何内容。
  4. 下载几秒钟后,我调用 playOfflineAsset(),但AVAssetCacheisPlayableOffline总是false。除非它是true的 VOD 播放列表。
  5. 我正在本地网络中流式传输。所以,如果这是一个版权问题,并且许可规则可以因在本地网络中而弯曲,那就是我可以做的事情。

更新

我从URLSessionTaskDelegate覆盖了urlSession(URLSession, task: URLSessionTask, didCompleteWithError: Error?),并且错误地调用了它:

错误域

=AVFoundation错误域代码=-11800"无法完成操作" UserInfo={NSLocalizedFailureReason=发生未知错误 (-16655),NSLocalizedDescription=无法完成操作}

这就解释了为什么3.从上面发生得这么早。因为请求实际上失败了。这可能证实了 HLS 离线不适用于事件或实时播放列表。无论如何,如果有人有一些事实可以支持这一点,如果可以分享它们,我将不胜感激。

我联系了一位Apple AVFoundation工程师,他确认离线HLS仅适用于VOD播放列表(从iOS 11.2开始)。

最新更新