IOS开发中视频压缩上传的实例代码
来源:爱站网时间:2020-10-22编辑:网友分享
我们都知道,现在视频带动着互联网的发展,而IOS开发中视频压缩的技术也是要不断的创新,本文是爱站技术频道小编带给大家的IOS开发中视频压缩上传的实例代码,一起过来看看吧!
我们都知道,现在视频带动着互联网的发展,而IOS开发中视频压缩的技术也是要不断的创新,本文是爱站技术频道小编带给大家的IOS开发中视频压缩上传的实例代码,一起过来看看吧!
之前写过图片上传PHP服务器,今天把接口稍微改了一下,把视频上传的代码贴出来,目前上传功能已经调通,视频的压缩代码上似乎并不完善,后续会完善压缩部分的代码;
- (void)convertVideoWithURL:(NSURL *)url
{
NSDate *date = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init];
[dateformatter setDateFormat:@"YYYY-MM-dd-HH-mm-ss"];
NSString *dateName = [dateformatter stringFromDate:date];
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *pathName = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp4",dateName]];
NSLog(@"沙盒:%@",pathName);
//转码配置
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
AVAssetExportSession *exportSession= [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputURL = [NSURL fileURLWithPath:pathName];
exportSession.outputFileType = AVFileTypeMPEG4;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
int exportStatus = exportSession.status;
switch (exportStatus) {
case AVAssetExportSessionStatusFailed:
{
// log error to text view
NSError *exportError = exportSession.error;
NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError);
[SVProgressHUD showErrorWithStatus:@"视频压缩失败"];
[SVProgressHUD dismissWithDelay:1.0];
break;
}
case AVAssetExportSessionStatusCompleted:
{
self.videoData = [NSData dataWithContentsOfFile:pathName];
[[NetTool shareDL]upLoadVideoWithURL:@"http://192.168.1.102/php/image.php" paremeter:nil data:self.videoData videoName:[NSString stringWithFormat:@"%@.mp4",dateName] progress:^(NSProgress * _Nonnull uploadProgress) {
[SVProgressHUD showProgress:1.0*uploadProgress.completedUnitCount/uploadProgress.totalUnitCount status:@"正在上传"];
NSLog(@"正在上传%f%%",(1.0*uploadProgress.completedUnitCount/uploadProgress.totalUnitCount)*100);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
[SVProgressHUD showSuccessWithStatus:@"上传成功"];
[SVProgressHUD dismissWithDelay:1.0];
} fail:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
[SVProgressHUD showErrorWithStatus:@"上传失败"];
[SVProgressHUD dismissWithDelay:1.0];
}];
}
}
}];
}
[manager POST:url parameters:parameter constructingBodyWithBlock:^(id_Nonnull formData) { [formData appendPartWithFileData:videoData name:@"upimage" fileName:videoName mimeType:@"video/mp4"]; } progress:^(NSProgress * _Nonnull uploadProgress) { progress(uploadProgress); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(task,responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { fail(task,error); }];
以上就是爱站技术频道小编收集的IOS开发中视频压缩上传的实例代码,我们可以知道视频在互联网中的重要,也要不断学习不断创新,才能不被淘汰哦。
上一篇:IOS开发中扇区绘制的详细说明
