0

我正在使用AVMutableVideoComposition添加视频和音频。

我有多个视频和音频文件,我将它们拼接在一起,基本上可以正常工作。

我正在使用此代码添加音频:

AVURLAsset *audioAsset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:path] options:nil];

            [compositionAudioTrack insertTimeRange:titleRange
                               ofTrack:[audioAsset tracksWithMediaType:AVMediaTypeAudio][0]
                                atTime:partZeroTime
                                 error:&err];

路径正确(使用NSLog检查),partZeroTime是每个音轨的插入点(音频只在视频开头播放)。音频文件总是相同的(一些 m4a 文件)。

不过,这只适用于第一个音频。不会播放所有后续音频。我没有收到添加音频资产的错误。

我还尝试为音乐创建单独的轨道,结果相同。

有任何想法吗?

[编辑]

我可能不完全清楚我想要做什么,所以这里有更多信息:我有几个剪辑的视频合成,我用 AVMutableComposition 拼接在一起。它包含一个介绍(我尝试在其中添加音乐),然后是 1 或 2 个剪辑,另一个介绍(带音乐),然后是更多视频。我为音乐添加了一个单独的轨道,所以它看起来像--music--silence--music--silence。

我尝试添加静音,insertEmptyTimerange但这基本上把一切都搞砸了。然后我使用insertTimeRange:tr ofTrack:nil... 这给了我与以前相同的结果:播放第一个音乐剪辑,但后面的每个剪辑都不会...

我正在为此拔头发...

4

1 回答 1

0

好的,这真的很愚蠢...... :)

问题是,我定义了错误的时间范围。而不是使用CMTimeRangeMake(kCMTimeZero, introDuration)我定义它就像音乐的开始时间在CMTimeRangeMake(introStart, introDuration)哪里......introStart

于 2013-07-25T11:57:07.623 回答