首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在下一次启动时恢复AVAggregateAssetDownloadTask?

如何在下一次启动时恢复AVAggregateAssetDownloadTask?
EN

Stack Overflow用户
提问于 2019-06-09 20:58:10
回答 1查看 423关注 0票数 1

我正在使用AVAggregateAssetDownloadTask下载视频内容,以便离线播放。如果在下载过程中,用户退出了应用程序,我需要一种在下一次启动时恢复下载的方法。使用Apple过去提供的AVAssetDownloadTask API来提供目标文件夹(请参阅此问题:How to resume AVAssetDownloadTask after restarting app),但此API现在已被弃用。文档中没有关于恢复任务的新方法的任何提示。

EN

回答 1

Stack Overflow用户

发布于 2020-02-06 17:44:56

对于我基于Documentation项目的AVAggregateAssetDownlodTask播放-暂停功能

我设法暂停并继续下载这段代码。

暂停

代码语言:javascript
复制
/// Pauses an AVAssetDownloadTask given an Asset.
/// - Tag: PauseDownload
func pauseDownload(for asset: Asset) {
  var task: AVAggregateAssetDownloadTask?
  for (taskKey, assetVal) in activeDownloadsMap where asset == assetVal {
       task = taskKey
       task?.suspend()
       break
   }
// asset.setState(mediaDownloadState: MediaDownloadState.paused) // this is personal, I added a state enum in Asset class so I can keep track state, it's optional
}

恢复

代码语言:javascript
复制
/// Pauses an AVAssetDownloadTask given an Asset.
 /// - Tag: ResumeDownload
func resumeDownload(for asset: Asset) {
        var task: AVAggregateAssetDownloadTask?
        for (taskKey, assetVal) in activeDownloadsMap where asset == assetVal {
            task = taskKey
            task?.resume()
            break
        }
        // asset.setState(mediaDownloadState: MediaDownloadState.downloading) same as before.. 
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56514780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档