ios - AVAssetDownloadTask iOS13

标签 ios swift ios13 avasset avassetdownloadtask

尝试了 iOS13.0 和 iOS13.1,但仍然无法正常工作,我尝试了 AVAggregateAssetDownloadTask 和 AVAssetDownloadURLSession,但都没有工作。没有任何委托(delegate)被调用来告诉我完成错误,我发现下载的缓存只有 25Kb,大小不正确。

错误是:

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedDescription=The operation could not be completed, _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundAVAssetDownloadTask <AFDCA3CC-FA49-488B-AB16-C74425345EE4>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(

    "BackgroundAVAssetDownloadTask <AFDCA3CC-FA49-488B-AB16-C74425345EE4>.<1>"

), NSLocalizedFailureReason=An unknown error occurred (-16654)}

最佳答案

发现AVAssetDownloadURLSession只能下载主播放列表结构包含codec属性的HLS到EXT-X-STREAM-INF m3u8 meta iOS 13+。

我不知道这是错误还是功能限制。 (m3u8 meta没有CODECS属性可以用AVFoundation播放,但是不能用AVAssetDownloadURLSession下载)

无论如何,解决办法是:

如果您有 HLS 主播放列表:

CODECS 属性添加到 m3u8 元中的 #EXT-X-STREAM-INF 中。 例如

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=63701,CODECS="mp4a.40.34"
playlist.m3u8

如果您还没有 HLS 主播放列表:

即使您不支持自适应流媒体,您也必须制作一个主播放列表。
主播放列表是唯一可以包含 #EXT-X-STREAM-INF 因此 CODECS 属性的 m3u8。

关于ios - AVAssetDownloadTask iOS13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182120/

相关文章:

ios - 以编程方式添加时渐变 View 不起作用

ios - View Controller 出现后 UINavigationBarAppearance 更新

iframe - DOM 操作后 iOS 13 iframe 单击区域损坏

ios - Objective C 中的动态缓冲区(带 ARC)

iphone - 根据宽度设置字体

swift - 登录项- cocoa

ios - Alamofire 序列化太慢

swift - 如何更改 iOS 13 搜索栏中的文本颜色?

ios - 如何在 objective-c 中用给定的字符串替换正则表达式的组1

iphone - 使用 GHUnit 编译单元测试的架构问题