Его довольно легко распространить на любое количество видео. Все, что вам нужно, это их URL. В упомянутом учебнике вы упомянули, что они объединяют два видео, чтобы вы знали основы. Посмотрите на это tutorial. Он соответствует вашему требованию и легко понять.
Вам просто нужно реализовать метод getRandomVideoFileURL
. Создайте массив URL всех видео. Передайте индекс цикла (i) и получите URL-адрес.
UPDATE: Для того, чтобы добавить инструкции, поместить эту часть в цикле:
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;
Изменить имена переменных, как вам нужно , поскольку я не знаю, какой учебник вы следите.
Это хорошая статья, но проблема в том, что я пытаюсь включить LayerInstructions, когда я просматриваю свой цикл. Для этого похоже, что вам нужны объекты AVMutableVideoComposition, которые эта статья не использует. В принципе, мне нужно выяснить, как объединить две статьи вместе. –