合成
更新时间:2020-12-11
- 合成模块负责将编辑后的视频导出成本地视频
导出预览视频
- 导出预览视频,将媒体轨道中心的所管理的视频、音频、字幕导出本地,默认是.mp4文件。导出时,需要暂停预览
- 代码示例如下:
Plain Text
1 //暂停预览
2 [self.previewer pausePreview];
3
4 NSDate *currentDate = [NSDate date];
5
6 double timeStamp = [currentDate timeIntervalSince1970];
7
8 NSString *videoName = [[NSString stringWithFormat:@"%f",timeStamp] stringByAppendingString:@".mp4"];
9
10
11 NSString *documentsDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
12
13 NSString *videoDirPath = [documentsDirPath stringByAppendingPathComponent:@"video_export"];
14
15 [[NSFileManager defaultManager] createDirectoryAtPath:videoDirPath withIntermediateDirectories:YES attributes:nil error:nil];
16
17 NSURL *documentsDirUrl = [NSURL fileURLWithPath:videoDirPath isDirectory:YES];
18
19 NSURL *output = [NSURL URLWithString:name relativeToURL:documentsDirUrl];
20
21 RMVPVideoEditConfig *config = [RMVPMediaConfigManager defaultEditConfig];
22
23 self.mediaExporter = [[RMVPMediaExporter alloc] initWithMediaTracksCenter:self.videoTrack outputURL:output config:config];
24
25 [self.mediaExporter startExportWithProgress:^(CGFloat progress) {
26
27 NSLog(@"media - exporter - progress %f", progress);
28
29 } completion:^(BOOL success, NSError *error) {
30
31 if (success) {
32
33 NSLog(@"media - exporter - success");
34
35 dispatch_async(dispatch_get_global_queue(0, 0), ^{
36
37 [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
38
39 [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:output];
40
41 } completionHandler:^(BOOL success, NSError * _Nullable error) {
42
43 if (success) {
44
45 [self.previewer resumePreview];
46
47 }
48
49 }];
50
51 });
52
53 } else {
54 }
55
56 }];