0

我们正在使用 AVAssetDownloadTask API 集在我们的应用程序中构建离线 Fairplay 播放功能。我们可以成功下载内容,但我们注意到网络活动,即在播放下载内容时对 movpkg 包中 boot.xml 中的 m3u8 播放列表的请求。

问题是加载那些 m3u8 播放列表需要 cookie 并且 cookie 设置为 1 天后过期,这会导致 cookie 过期时播放失败。我的问题是为什么播放下载的内容需要加载这些播放列表?难道不应该在没有网络的情况下播放下载的内容吗?

谢谢。

4

1 回答 1

0

确保您只有一个 AVURLAsset 实例指向您下载的资产。当有多个 AVURLAssets 指向同一个 .movpkg 时,有时 AVPlayerItem 会退回到网络播放。

请注意,Apple 表示他们在 iOS 14.2 中对此进行了改进:https ://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-14_2-release-notes :

  • 对离线 HLS 文件系统 URL 上的多个并发 AVURLAsset 实例的支持已得到改进。
  • 您现在可以在具有完整 AVMediaSelection 对象的离线 HLS 资产上使用多个并发 AVPlayerItem 对象和其他 AVFoundation 对象,而不会触发网络读取。
于 2021-03-09T01:12:43.643 回答