当用户发现比较搞笑的视频时,总是想进行模仿的,在短视频app制作合拍功能之前,我们至少需要两部手机,一部负责播放原视频,一部负责拍摄我们自己,非常不便,而现在,合拍功能应运而生,本篇文章是关于在短视频源码中添加合拍功能的教程。
通过本文,你将可以为自己的短视频app制作合拍功能,代码如下:
一、 短视频合拍功能的实现步骤
1、下载
2、拍摄
3、添加各种效果
4、发布
二、 具体实现步骤的短视频源码:
-(void)downloadVideo:(RKDownType)downType{ NSString *href = [NSString stringWithFormat:@"%@",[_parameterDic valueForKey:@"href_w"]]; if (downType == RKDownType_Chorus) { href = [NSString stringWithFormat:@"%@",[_parameterDic valueForKey:@"href"]]; } href = [PublicObj decrypt:href]; if (href.length <= 0 || [href containsString:@".m3u8"]) { if (downType == RKDownType_Save) {
如果该视频暂不支持合拍和下载,则会显示:
[MBProgressHUD showError:@"该视频暂不支持下载"]; }else { [MBProgressHUD showError:@"该视频暂不支持合拍"]; } _isDownLoading = NO; [self dismiss]; return; } NSString *title = [NSString stringWithFormat:@"%@",[_parameterDic valueForKey:@"title"]]; if (title.length == 0) { NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0]; NSTimeInterval a=[dat timeIntervalSince1970]*1000; NSString *timeString = [NSString stringWithFormat:@"%d", (int)a]; title = timeString; } hud = [MBProgressHUD showHUDAddedTo:self animated:YES]; hud.mode = MBProgressHUDModeAnnularDeterminate;
正在下载视频时显示:“正在下载视频,请稍等”
NSString *showDesText = @"正在下载视频"; downType == RKDownType_Save ? (showDesText = @"正在下载视频"):(showDesText = @"请稍等..."); hud.label.text = showDesText; //1.创建会话管理者 AFHTTPSessionManager *manager =[AFHTTPSessionManager manager]; NSURL *url = [NSURL URLWithString:href]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSMutableURLRequest *m_reques = [request mutableCopy]; [m_reques addValue:h5url forHTTPHeaderField:@"referer"]; request = [m_reques copy]; NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { //hud.progress = downloadProgress.fractionCompleted; dispatch_async(dispatch_get_main_queue(), ^{ hud.progress = downloadProgress.completedUnitCount / downloadProgress.totalUnitCount; }); //监听下载进度 //completedUnitCount 已经下载的数据大小 //totalUnitCount 文件数据的中大小 NSLog(@"%f",1.0 *downloadProgress.completedUnitCount / downloadProgress.totalUnitCount); } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { NSString *fullPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename]; NSLog(@"targetPath:%@",targetPath); NSLog(@"fullPath:%@",fullPath); return [NSURL fileURLWithPath:fullPath]; } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { fullPathsss = filePath; NSLog(@"%@",filePath); if (downType == RKDownType_Save) { UISaveVideoAtPathToSavedPhotosAlbum([filePath path], self, @selector(video:didFinishSavingWithError:contextInfo:), nil); }else { dispatch_async(dispatch_get_main_queue(), ^{ _isDownLoading = NO; [self dismiss]; if ([PublicObj checkNull:[fullPathsss path]]) { [MBProgressHUD showPop:@"该视频暂不支持合拍"]; return ; } if (self.shareEvent) { self.shareEvent(4, [fullPathsss path]); } }); } }]; //3.执行Task [download resume]; } -(void)startCameraPreview { if (_cameraPreviewing == NO) { //合拍 if (_recordType == RecordType_Chorus) { [[TXUGCRecord shareInstance]setMute:YES]; [self isChorusEvent]; }else { [self resetUGCConfig:NO]; } [_progressView updateMinTime:MIN_RECORD_TIME andMaxTime:MAX_RECORD_TIME]; [TXUGCRecord shareInstance].recordDelegate = self; [TXUGCRecord shareInstance].videoProcessDelegate = self; if ([PublicObj checkNull:[common getTISDKKey]]) { isTXfiter = YES; [[TXUGCRecord shareInstance] setBeautyStyle:0 beautyLevel:[TXBaseBeautyView getBaseWhiteValue] whitenessLevel:[TXBaseBeautyView getBaseWhiteValue] ruddinessLevel:0]; }else{ isTXfiter = NO; [[TXUGCRecord shareInstance] setBeautyStyle:0 beautyLevel:0 whitenessLevel:0 ruddinessLevel:0]; [[MHSDK shareInstance] init:[PublicObj decrypt:[common getTISDKKey]]]; } [[TXUGCRecord shareInstance] setEyeScaleLevel:0]; [[TXUGCRecord shareInstance] setFaceScaleLevel:0]; _cameraPreviewing = YES; } }
以上就是短视频源码实现合拍功能的代码实现方式,欢迎大家在评论区和我讨论,文章声明原创,转载请注明文章来自“云豹科技官方”