微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 中修复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?