iOS视频下载成功block回调

一:在VC中调用下载类方法;

[HTXGolfVideoBufferMemory downLoadGolfVideoWithPath:littleVideoPath andURL:_url andWithDownLoadCompelition:^(NSString *path) {
// _url = path;
DSLog(@"下载完成地址 %@",path);
}];

二:在下载类方法中实现;


typedef void (^DownLoadCompeteBlcok)(NSString * path);


@interface HTXGolfVideoBufferMemory : NSObject


+ (void)createFile:(NSString*)path WithData:(NSData*)imgData andWithDownLoadCompelition : (DownLoadCompeteBlcok) downCompelition;;


+ (void) downLoadGolfVideoWithPath:(NSString *)littleVideoPath andURL:(NSString *)url andWithDownLoadCompelition : (DownLoadCompeteBlcok) downCompelition;


//创建缓存路径 并且下载到本地
+ (void)createFile:(NSString*)path WithData:(NSData*)imgData andWithDownLoadCompelition : (DownLoadCompeteBlcok) downCompelition{ // file
path = [path stringByAppendingString:@"OVER"];

[[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
// write
NSFileHandle*dataHandle = [NSFileHandle fileHandleForUpdatingAtPath:path] ;
[dataHandle writeData:imgData];
if (downCompelition) {
downCompelition(path);
}
// close
[dataHandle closeFile];
}

//创建多线程下载
+ (void) downLoadGolfVideoWithPath:(NSString *)littleVideoPath andURL:(NSString *)url andWithDownLoadCompelition:(DownLoadCompeteBlcok) downCompelition{

NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
NSData *littleVideoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
[self createFile:littleVideoPath WithData:littleVideoData andWithDownLoadCompelition:downCompelition];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
DSLog(@"视频缓存成功");
}];
}];
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[queue addOperation:operation];



}


猜你喜欢

转载自blog.csdn.net/qq_27247497/article/details/52628320