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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。