Как редактировать AVMutableCompositionTrack с несколькими сегментами?
У меня есть функция, которая добавляет несколько сегментов в AVMutableCompositionTrack в видеоредакторе для iPhone. Я использую следующий метод
[self.compositionVideoOneTrack insertTimeRange:video_timeRange ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:CMTimeMakeWithSeconds(videoSegmentData.startTime, VIDEO_TIME_SCALE) error:nil];
Все отлично работает Теперь мне требуется увеличивать startTime каждого из уже добавленных сегментов в композиции Track. До сих пор я не нашел никакого механизма, кроме как удалить все сегменты и переписать их на новой позиции с самого начала.
- Я попытался получить все AVCompositionTrackSegment в композиции Track и изменить время начала цели, но он не может быть назначен.
- я пытался
[self.compositionVideoOneTrack removeTimeRange:videoSegmentData.videoTimeRange];
удалить сегмент, а затем вставить его снова в хорошем положении. Но этот вызов заставляет все сегменты рядом с удаленными сегментами двигаться влево. Вставка в хорошем положении перекрывается сегментами, которые сдвинуты влево.
Ждем решения.
1 ответ
Мы делаем подобные манипуляции. Наше решение состояло в том, чтобы создать наш собственный класс, в котором мы будем манипулировать всем до тех пор, пока мы не будем довольны, что оно находится в нужном месте, а затем непосредственно перед созданием видео мы добавим все это в AVMutableCompositionTrack, как только позиции будут "заблокированы".