将{1}}添加一个视频资产和一个音频素材并使用AVMutableComposition
后获取可播放的mov文件时,我没有任何问题。但是,当我尝试在第一次出现问题后立即添加另一个视频轨道时。或
1)播放第一个视频,并在mov文件的持续时间内冻结其最后一帧(从不播放第二个视频)。
2)在第二个视频完整播放之前,会显示一个黑框。
3)会话根本不会导出。
我通过在各自的AVAssetExportSession
..方法中调整视频资产的时间范围来获得这些不同的结果。
insertTimeRange:ofTrack:
有没有人知道应该在这里调整什么?
感谢。
答案 0 :(得分:0)
添加音轨以及要添加的第二个视频轨道。或者添加一个音频轨道,其持续时间等于您要添加的两个视频片段的长度。我们的想法是让音频/视频音轨具有相同的长度。
答案 1 :(得分:0)
我的猜测是:
[secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
应替换为
[secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:firstAsset.duration error:nil];
其次,您应该设置AVMutableVideoCompositionLayerInstruction对象的不透明度。我推荐this HowTo。