AVAsset.LoadValuesAsynchronously 0 在完成处理程序中使用 m3u8 URL 跟踪

问题描述

我正在尝试预取格式为 m3u8 URL 结尾的视频文件。 我运行此代码

private func prefetch(for url: URL?) {
    guard let url = url else { return nil }
    let asset = assets[url] ?? AVAsset(url: url)
    asset.loadValuesAsynchronously(forKeys: ["isPlayable","tracks","hasProtectedContent"],completionHandler: {
        print("asset: \(url.relativeString) tracks: \(asset.tracks.count)")
    })
    assets[url] = asset // save to memory cache
}

基本上,它总是在 asset.track.count 打印中打印 0 条轨道。 我希望它打印 1-3,因为这是这些视频的曲目数量,而且我没有看到使用此代码提高了视频播放的性能

我还缺少什么来预取这些曲目吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)