我正在使用这个精彩的教程加载2个视频并将它们合并到iOS中。
http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios
我想改编一下,以便能够处理用户选择的无限视频,但我正在努力。如何创建一个AVAsset对象数组,然后将其合并为一个视频?
答案 0 :(得分:0)
我将每个视频的MediaURL保存在一个数组中,然后我将其用于从我想要合并它们时读取每个视频。您可以在我的问题here
中看到更多内容请注意我在每次合并后如何处理插入时间。
答案 1 :(得分:0)
很容易将其扩展到任意数量的视频。您只需要他们的URL。在您提到的教程中,他们合并了两个视频,以便您了解基础知识。看看这个tutorial。它完全符合您的要求并且易于理解。
您只需实施getRandomVideoFileURL
方法即可。创建所有视频网址的数组。传递循环索引(i)并获取URL。
更新:要添加说明,请将此部分放入循环中:
AVMutableVideoCompositionInstruction *videoCompositionInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
videoCompositionInstruction.timeRange = CMTimeRangeMake(time, assetTrack.timeRange.duration);
videoCompositionInstruction.layerInstructions = @[[AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoCompositionTrack]];
[instructions addObject:videoCompositionInstruction];
然后,在这样的循环形式AVMutableVideoComposition
之后:
AVMutableVideoComposition *mutableVideoComposition = [AVMutableVideoComposition videoComposition];
mutableVideoComposition.instructions = instructions;
mutableVideoComposition.frameDuration = CMTimeMake(1, 30);
mutableVideoComposition.renderSize = size;
根据需要更改变量名称,因为我不知道您正在关注哪个教程。