AVAssetDownloadTask iOS13

问题描述 投票:2回答:1

尝试过iOS13.0和iOS13.1,但仍然无法正常工作,我尝试了AVAggregateAssetDownloadTask和AVAssetDownloadURLSession,但它们均无法正常工作。没有任何代表被叫来告诉我完成错误,我发现下载的缓存只有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)}
ios swift ios13 avasset avassetdownloadtask
1个回答
0
投票

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

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

无论如何,解决方案是:

如果您有HLS主播放列表:

CODECS属性添加到m3u8 meta中的#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-INFCODECS属性的m3u8。

© www.soinside.com 2019 - 2024. All rights reserved.