我正在使用AVAggregateAssetDownloadTask在我的应用程序中下载HLS视频。我刚刚添加了暂停/恢复功能。简单地说,当用户想要暂停下载时,我会暂停任务。
但是,在这种情况下,实际上任务不会停止。它不断下载资产。当我按下恢复按钮时,我正在调用任务的 .resume() 方法。不知何故,这个过程非常快,直到%100,它给出了一个错误(继续阅读或转到错误消息标题)。
我该如何测试
- 开始通过 AVAggregateAssetDownloadTask 下载项目
- 在 %3 处点击暂停。
- 调用任务?.suspend()
- 等待 1 分钟或 2 分钟
- 点击恢复下载按钮
- 调用任务?.resume()
- 任务从 %29 恢复
- 任务在 %48 失败
代码
@objc public func pauseDownload(for productId: String) {
var asset: Asset?
var task: AVAggregateAssetDownloadTask?
for (taskKey, assetValue) in activeDownloadsMap where productId == assetValue.productId {
asset = assetValue
task = taskKey
task?.suspend() // **task is not nil!**
break
}
// Here: I'm sending a notification to the UI cases
}
@objc public func resumeDownload(for productId: String) {
var asset: Asset?
var task: AVAggregateAssetDownloadTask?
for (taskKey, assetValue) in activeDownloadsMap where productId == assetValue.productId {
asset = assetValue
task = taskKey
task?.resume() // **task is not nil!**
break
}
// Here: I'm sending a notification to the UI cases
}
其他案例
- 在不暂停任务的情况下,它可以完美下载。
技术细节
- Xcode 版本 12.4 (12D4e)
- iOS 版本 14.4
错误信息
错误域=CoreMediaErrorDomain 代码=-16657
"(null)" UserInfo={_NSURLErrorRelatedURLSessionTaskErrorKey=( "BackgroundAVAssetDownloadTask .<1>"), _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundAVAssetDownloadTask .<1>}
developer.apple.com
developer.apple.com 上也有同样的问题:
https://developer.apple.com/forums/thread/674090
报告的错误
FB9043262
如果您认为自己面临同样的问题,请考虑帮助。
最好的。