【问题标题】:Offline FairPlay playback makes network requests to load m3u8 playlists离线 FairPlay 播放使网络请求加载 m3u8 播放列表
【发布时间】:2020-11-28 05:39:06
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: ios swift avfoundation fairplay avassetdownloadtask


    【解决方案1】:

    确保您只有一个 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 实例的支持。
    • 您现在可以在离线 HLS 资产上使用多个并发 AVPlayerItem 对象和其他 AVFoundation 对象,并完成 AVMediaSelection 对象,而无需触发网络读取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-18
      • 2013-05-13
      • 1970-01-01
      • 2018-04-19
      • 2010-12-12
      • 2014-03-10
      • 1970-01-01
      • 2022-02-03
      相关资源
      最近更新 更多