iOS 는 비디오 다운 로드 를 실현 하고 앨범 에 자동 으로 저장 합 니 다.
비디오 클래스 정의 속성
///@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]];
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.