AVAggregateAssetDownloadTask 错误域=CoreMediaErrorDomain 代码=-16657 错误域=CoreMediaErrorDomain 代码=-16657developer.apple.com

问题描述

我正在使用 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 ."),_NSURLErrorFailingURLSessionTaskErrorKey=Backgroundavassetdownloadtask .}

developer.apple.com

developer.apple.com 上也有同样的问题:

https://developer.apple.com/forums/thread/674090

报告的错误

FB9043262

如果您认为自己遇到了同样的问题,请考虑帮助。

最好的。

解决方法

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