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]];
}


发布了31 篇原创文章 · 获赞 30 · 访问量 7379

猜你喜欢

转载自blog.csdn.net/qq_41586150/article/details/104293954
今日推荐