iOS实现视频下载并自动保存到相册功能
iOS视频下载功能实现,并自动保存到相册(有MBProgressHUD可以解开注释),供大家参考,具体内容如下
视频类定义属性
///@property(nonatomic,strong)MBProgressHUD*hud; @property(nonatomic,strong)NSURLSession*session; ///视频播放和下载用的url @property(nonatomic,strong)NSURL*url;
///初始化session -(NSURLSession*)session{ if(_session==nil) { NSURLSessionConfiguration*config=[NSURLSessionConfigurationdefaultSessionConfiguration]; _session=[NSURLSessionsessionWithConfiguration:configdelegate:selfdelegateQueue:nil]; } return_session; } ///下载 -(void)download:(UIBarButtonItem*)btnItem{ ///初始化Session _session=[XMConciseVedioPlayergetSession:_session]; ///self.hud=[MBProgressHUDshowHUDAddedTo:selfanimated:YES]; [selfdownloadFileWithUrl:self.url]; } ///通过url下载 -(void)downloadFileWithUrl:(NSURL*)url{ NSURLRequest*request=[NSURLRequestrequestWithURL:urlcachePolicy:1.0timeoutInterval:5.0]; ///下载任务 [[self.sessiondownloadTaskWithRequest:request]resume]; NSURLSessionDownloadTask*task=[_sessiondownloadTaskWithURL:urlcompletionHandler:^(NSURL*location,NSURLResponse*response,NSError*error){ ///[self.hudsetLabelText:[NSStringstringWithFormat:@"下载成功"]]; NSFileManager*fileManger=[NSFileManagerdefaultManager]; ///沙盒Documents路径 NSString*documents=[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]; //拼接文件绝对路径 NSString*path=[documentsstringByAppendingPathComponent:response.suggestedFilename]; //视频存放到这个位置 [fileMangermoveItemAtURL:locationtoURL:[NSURLfileURLWithPath:path]error:nil]; ///保存到相册 UISaveVideoAtPathToSavedPhotosAlbum(path,self,@selector(video:didFinishSavingWithError:contextInfo:),nil); }]; ///开始下载任务 [taskresume]; } //保存视频完成之后的回调 -(void)video:(NSString*)videoPathdidFinishSavingWithError:(NSError*)errorcontextInfo:(void*)contextInfo{ if(!error){ ///[self.hudsetLabelText:[NSStringstringWithFormat:@"保存到相册成功"]]; }else{ ///[self.hudsetLabelText:[NSStringstringWithFormat:@"下载失败"]]; } ///[self.hudhide:YESafterDelay:3.0]; } //进度数据 -(void)URLSession:(NSURLSession*)sessiondownloadTask:(NSURLSessionDownloadTask*)downloadTaskdidWriteData:(int64_t)bytesWrittentotalBytesWritten:(int64_t)totalBytesWrittentotalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{ floatprogress=(float)totalBytesWritten/totalBytesExpectedToWrite; longpro=(long)(progress*100); ///[self.hudsetLabelText:[NSStringstringWithFormat:@"下载进度:%ld%%",pro]]; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。