我正在使用AVAggregateAssetDownloadTask下载视频内容,以便离线播放。如果在下载过程中,用户退出了应用程序,我需要一种在下一次启动时恢复下载的方法。使用Apple过去提供的AVAssetDownloadTask API来提供目标文件夹(请参阅此问题:How to resume AVAssetDownloadTask after restarting app),但此API现在已被弃用。文档中没有关于恢复任务的新方法的任何提示。
发布于 2020-02-06 17:44:56
对于我基于Documentation项目的AVAggregateAssetDownlodTask播放-暂停功能
我设法暂停并继续下载这段代码。
暂停
/// 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
}恢复
/// 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..
}https://stackoverflow.com/questions/56514780
复制相似问题