Редактирование видеороликов в AVComposition
У меня есть AVComposition
содержащий несколько видео и аудио треков. Пока что это чисто программно, без графического интерфейса. Я хочу, чтобы пользователь мог нажимать на одну дорожку пару кадров назад или вперед по желанию, нажав кнопку. Например: кнопка с названием "-10 кадров" отодвинет дорожку на 10 кадров назад, а "+10 кадров" выдвинет ее на 10 кадров вперед. Я не могу найти способ на самом деле переместить трек после того, как он был добавлен с помощью insertTimeRange:ofTrack:atTime:
,
Я попытался удалить его и снова добавить его так:
[secondAudioTrack removeTimeRange:CMTimeRangeMake(kCMTimeZero, kCMTimeIndefinite)];
[secondAudioTrack insertTimeRange:range ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] firstObject] atTime:newTime error:nil];
И на самом деле это не так уж далеко (хотя, возможно, я сделал что-то не так), но я чувствую, что это такой хакерский способ сделать это... Кто-нибудь знает правильный способ дать новое время уже добавленному треку в AVComposition
?
1 ответ
Я не думаю, что есть. Полное видео должно быть спланировано до включения видео композиции. Позвольте пользователю предоставить только информацию, сохраните ее, а затем запускайте композицию видео только тогда, когда у вас достаточно информации от пользователя. Начните чистить каждый раз. Вы никогда не должны изменять временной диапазон внутри AVMutableCompositionTrack.