0

我正在使用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

如果您认为自己面临同样的问题,请考虑帮助。

最好的。

4

1 回答 1

1

我也遇到了这个问题。看起来它已在当前版本的 iOS 14 中修复。

于 2021-07-05T22:14:25.907 回答