0

我有一个AVComposition包含多个视频和音频轨道。到目前为止,它是纯编程的,没有 GUI。我希望用户能够通过单击一个按钮将一个轨道前后推动几帧。例如:标题为“-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

4

1 回答 1

0

我不认为有。在涉及视频合成之前,应计划完整的视频。让用户只提供信息,保存它,然后仅当您从用户那里获得足够的信息时才运行视频合成。每次开始清洁。您永远不必更改 AVMutableCompositionTrack 内的时间范围。

于 2015-01-15T21:18:04.897 回答