Ios 有没有可能;暂停“;及;简历;AVAssetDownloadTask?
到目前为止,我只找到了两个下载视频的选项,即“恢复”或“取消”/“暂停”。是否有任何可能的方法暂停下载中间的视频,并从停止的位置继续下载。我使用下面的代码下载和存储视频Ios 有没有可能;暂停“;及;简历;AVAssetDownloadTask?,ios,objective-c,avurlasset,avassetdownloadtask,Ios,Objective C,Avurlasset,Avassetdownloadtask,到目前为止,我只找到了两个下载视频的选项,即“恢复”或“取消”/“暂停”。是否有任何可能的方法暂停下载中间的视频,并从停止的位置继续下载。我使用下面的代码下载和存储视频 // Create new background session configuration. NSURLSessionConfiguration *urlSessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationW
// Create new background session configuration.
NSURLSessionConfiguration *urlSessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"assetDowloadConfigIdentifier"];
AVAssetDownloadURLSession *avAssetDownloadSession = [AVAssetDownloadURLSession sessionWithConfiguration:urlSessionConfiguration assetDownloadDelegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURL *assetURL = [NSURL URLWithString:@"https://a4i6y2k6.stackpathcdn.com/vistvorigin/smil:4b0d690b7b3bc8ac5da2049f50c80794c762423e.smil/playlist.m3u8"];
AVURLAsset *hlsAsset = [AVURLAsset assetWithURL:assetURL];
if (@available(iOS 10.0, *)) {
AVAssetDownloadTask *avAssetDownloadTask = [avAssetDownloadSession assetDownloadTaskWithURLAsset:hlsAsset assetTitle:@"downloadedMedia" assetArtworkData:nil options:nil];
if([command isEqualToString:@"resume"]){
// Start task and begin download
[avAssetDownloadTask resume];
}else{
[avAssetDownloadTask cancel];
}
} else {
// Fallback on earlier versions
}
在这里,您可以使用 任务挂起时不会产生网络流量,也不会超时。下载任务可以在以后继续传输数据。恢复后,所有其他任务都必须重新开始 如果要查找当前任务状态use属性,它将返回当前状态,状态如下
/*
NSURLSessionTaskStateRunning = 0,
NSURLSessionTaskStateSuspended = 1,
NSURLSessionTaskStateCanceling = 2,
NSURLSessionTaskStateCompleted = 3,
例如,你可以用as like
NSURL *assetURL = [NSURL URLWithString:@"https://a4i6y2k6.stackpathcdn.com/vistvorigin/smil:4b0d690b7b3bc8ac5da2049f50c80794c762423e.smil/playlist.m3u8"];
AVURLAsset *hlsAsset = [AVURLAsset assetWithURL:assetURL];
if (@available(iOS 10.0, *)) {
AVAssetDownloadTask *avAssetDownloadTask = [avAssetDownloadSession assetDownloadTaskWithURLAsset:hlsAsset assetTitle:@"downloadedMedia" assetArtworkData:nil options:nil];
if(avAssetDownloadTask.state == 1){
// Start task and begin download
[avAssetDownloadTask resume];
}else{
[avAssetDownloadTask cancel];
}
} else {
// Fallback on earlier versions
}
选项2
如果您想在KVO模式中执行,请参见此