基于持续时间的循环AVAset

时间:2018-12-12 23:08:28

标签: xcode avasset

我的应用拍摄照片并将其编译为视频片段。有时,根据照片数量,视频会变短。我使用AVMutableComposition基本上将片段组合在一起,以使其达到特定的持续时间。我需要做的是使剪辑长于3秒,但尽可能接近3秒。这是我的代码的一部分。我使用NSLog来获取原始视频时长。我刚刚手动设置的其他代码。我要做的基本上是将数组仅设置必要的时间来设置[AVAsset assetWithURL:fileURL]。换句话说,如果持续时间为.7秒,那么将需要5个AVAsets(.7 * 5 = 3.5秒),但是如果持续时间为2秒,那么我将仅需要5个AVAssets(2 * 2 = 4秒)

NSURL *fileURL = [[NSUserDefaults standardUserDefaults] URLForKey:@"InstagramMP4"];
                NSString * filePath = [fileURL path];

                NSLog (@"SEND TWITTER DATA1: %@", filePath);
                AVAsset *videoAsset = (AVAsset *)[AVAsset assetWithURL:fileURL];
                AVAssetTrack *videoAssetTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];


NSLog(@"duration: %.2f", CMTimeGetSeconds(videoAssetTrack.timeRange.duration));


                AVAsset *asset1 = [AVAsset assetWithURL:fileURL];
                AVAsset *asset2 = [AVAsset assetWithURL:fileURL];
                AVAsset *asset3 = [AVAsset assetWithURL:fileURL];
                AVAsset *asset4 = [AVAsset assetWithURL:fileURL];
                AVAsset *asset5 = [AVAsset assetWithURL:fileURL];
                AVAsset *asset6 = [AVAsset assetWithURL:fileURL];
                NSArray *assets = @[asset1, asset2, asset3, asset4, asset5, asset6];

0 个答案:

没有答案