ios 视频断点续传常识

 说实话之前都没做过视频下载,这次做了才了解一下,我写博客就是为了防止忘记.好记性不如烂笔头,我记性很差,简单记录一下方便以后查找.


1.我做视频下载的时候Http三方库用的是ASIHttp,很古老的一个,几年前已经停止更新了,公司项目一直用的这个,我这个刚来的一时想改也改不了.后期肯定会替换.

2.视频下载其实很简单,创建下载请求,然后给他一个临时文件路径,一个最终存储路径,请求启动就OK了,剩下的不用操心了.

临时文件路径存储视频下载的中间文件.下载成功后会自动存储到最终存储路径中.

设置临时路径.

request.temporaryFileDownloadPath = tempFilepath;


很关键的一点,设置允许断点续传.
request.allowResumeForFileDownloads = YES;

3.关于下载队列

多个视频下载免不了用到队列,ASI中已经封装好了一个类ASINetwokQueue,创建的请求都加到queue里面,他就会一个个执行,当然你可以同时下载多个,这个可以设置.

4.当然下载对应的还有取消下载,怎么取消?

找到你要取消那个请求,调用 [operation cancel] 或者[operation  clearDelegatesAndCancel],只不过前者是会调用请求失败的回调,后者不会.看情况选择.

5.如果队列里其中一个请求失败了,默认其他请求也会自动取消下载,如果不想这样,就设置队列的一个属性:

        [_requestQueue setShouldCancelAllRequestsOnFailure:NO];

 6.关于进度

每个请求都可以跟踪下载进度,你可以用第三方已经提供的 : [_request setDownloadProgressDelegate:self];然后就可以 利用下面这个回调去在UI上更新你的进度的.

- (void)setProgress:(float)newProgress{         

//这个地方更新你的进度

         }

当然这个是没有具体下载多少字节的数据的,你可以在 - (void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data;这个方法里面去获取你下载的字节数

	[self.fileData appendData:data];

self.fileData.length就是当前已下载的字节数.自己转化成K 或者MB 或者GB

7.其他就是暂停,删除等细节,需要持久化一下,方便下次尽量继续下载.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值