iOS多个视频下载与停止下载的处理

原创 2018年04月16日 11:00:32

视频下载我使用的是

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
    
    self.download = [self.urlSessionManager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
        if (progress && downloadProgress.finished) {
            progress(downloadProgress.completedUnitCount, downloadProgress.totalUnitCount);
        }
    } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
        // 这里要返回一个NSURL,其实就是文件的位置路径
        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        // 使用建议的路径
        path = [path stringByAppendingPathComponent:response.suggestedFilename];
        NSLog(@"》》》%@",path);
        // 转化为文件路径
        return [NSURL fileURLWithPath:path];
    } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
        if (completion) {
            completion(filePath, error.localizedDescription);
        }
    }];
    [self.download resume];

此处self.urlSessionManager是AFURLSessionManager的对象

后台传的视频地址是一个数组,所以我用了for循环来下载,开始时暂停下载里只写了[self.download cancle],后来发现我暂停后下载任务还在执行,仔细一想是因为for循环创建了多个下载队列,我暂停的时候只是暂停了其中一个队列,后来只能在网上查资料停止当前所有下载队列的解决办法。

// 取消当前所有的网络请求
    NSMutableArray *taskData = [NSMutableArray arrayWithArray:[self.urlSessionManager downloadTasks]];
    [taskData enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if (((NSURLSessionDownloadTask *)obj).state != NSURLSessionTaskStateCompleted) {
            [(NSURLSessionDownloadTask *)obj cancel];
        }
    }];
    [taskData removeAllObjects];

后来又找到了这个方法,使用以后发现还是差点儿什么,于是我就在停止的地方加上了一个for循环并同步执行,然后停止方法起了作用。

实战COM(03)----创建一个进程外组件

 本文欢迎转载,唯请注明出处及作者 blackcolor@263.net---------------------------------------------------             ...
  • blackcolor
  • blackcolor
  • 2001-07-24 15:14:00
  • 1474

(iOS开发) 往服务器上传视频

情景: 多选视频,然后打包成一个zip压缩包(里面有多个视频,一个json文件) 一、先生成本地的文件: -(NSString *)getDocumentPath { NSFileMana...
  • wf990051004
  • wf990051004
  • 2017-01-09 17:35:07
  • 1537

iOS 录制视频并上传

调取系统录制视频并上传,获取第一帧显示在界面 1.调取系统摄像 self.imagePicker=[[UIImagePickerController alloc]init]; sel...
  • aa654403231
  • aa654403231
  • 2016-11-29 21:52:54
  • 1123

<em>IOS</em>全套<em>视频</em>

2017-11-08 <em>上传</em>大小:48B <em>ios</em> 本资源为<em>IOS</em>全套<em>视频</em>教程,百度云链接,永久有效,失效联系我 综合评分:5 收藏(1)评论(2)举报 所需: 3积分/C币 <em>下载</em>个数: 38...
  • 2018年04月17日 00:00

iOS视频压缩存储至本地并上传至服务器

最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下。这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的。 1、该方法没有对视频进行压缩,只是将视...
  • shengdaVolleyball
  • shengdaVolleyball
  • 2016-08-30 14:54:34
  • 938

iOS原生api post上传图片,上传视频

我之前在做文件上传的时候,不想用第三方的,于是就写了一个简单的图片上传方法 ------------.h文件里面写一个这样方法------- /**  *  异步上传文件,视频,...
  • yutaotst
  • yutaotst
  • 2016-06-15 16:53:26
  • 1774

[IOS]从相册获取图片和视频进行上传

[IOS]从相册获取图片和视频进行上传 Demo地址:http://download.csdn.net/detail/u012881779/8821955 从相册拿到图片和视频的地址,大概是这...
  • u012881779
  • u012881779
  • 2015-06-19 13:39:28
  • 6317

<em>iOS</em>开发 播放<em>视频</em>同时<em>下载</em>

2014-10-11 <em>上传</em>大小:988KB <em>IOS</em>开发播放<em>视频下载</em> 此代码实现了边播放网络<em>视频</em>边把网络<em>视频下载</em>到本地,简单的实现了播放<em>视频</em>的功能,适用于新手 ...
  • 2018年04月17日 00:00

iOS开发中文件的上传和下载功能的基本实现

iOS开发中文件的上传和下载功能的基本实现 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载 文件的上传 说明:文件上传使用...
  • wakice
  • wakice
  • 2016-02-23 15:11:02
  • 1962

iOS视频拍摄压缩上传和播放

iOS视频拍摄压缩上传和播放 视频分享 想实现iPhone手机拍摄一段视频,上传到云端分享给手机好友。 技术实现 视频压缩。iPhone拍摄的视频很大,几秒钟就几十兆文件了...
  • wenzfcsdn
  • wenzfcsdn
  • 2014-12-02 16:23:01
  • 2167
收藏助手
不良信息举报
您举报文章:iOS多个视频下载与停止下载的处理
举报原因:
原因补充:

(最多只允许输入30个字)