AI智能
改变未来

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 = [NSURLSessionConfiguration defaultSessionConfiguration];_session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];}return _session;}///下载- (void)download:(UIBarButtonItem *)btnItem{///初始化Session_session = [XMConciseVedioPlayer getSession:_session];///self.hud = [MBProgressHUD showHUDAddedTo:self animated:YES];[self downloadFileWithUrl:self.url];}///通过url下载- (void)downloadFileWithUrl:(NSURL *)url{NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:1.0 timeoutInterval:5.0];///下载任务[[self.session downloadTaskWithRequest:request]resume];NSURLSessionDownloadTask *task = [_session downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {///[self.hud setLabelText:[NSString stringWithFormat:@\"下载成功\"]];NSFileManager *fileManger = [NSFileManager defaultManager];///沙盒Documents路径NSString *documents = [NSHomeDirectory() stringByAppendingPathComponent:@\"Documents\"];//拼接文件绝对路径NSString *path = [documents stringByAppendingPathComponent:response.suggestedFilename];//视频存放到这个位置[fileManger moveItemAtURL:location toURL:[NSURL fileURLWithPath:path] error:nil];///保存到相册UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);}];///开始下载任务[task resume];}//保存视频完成之后的回调- (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {if (!error) {///[self.hud setLabelText:[NSString stringWithFormat:@\"保存到相册成功\"]];} else {///[self.hud setLabelText:[NSString stringWithFormat:@\"下载失败\"]];}///[self.hud hide:YES afterDelay:3.0];}// 进度数据- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{float progress = (float)totalBytesWritten / totalBytesExpectedToWrite;long pro = (long)(progress *100);///[self.hud setLabelText:[NSString stringWithFormat:@\"下载进度:%ld%%\",pro]];}

以上就是本文的全部内容,希望对大家的学习有所帮助

您可能感兴趣的文章:

  • iOS沙盒视频缩略图及保存本地代码
  • iOS中读取照片库及保存图片或视频到照片库的要点解析
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » iOS实现视频下载并自动保存到相册功能