多次向AVMutableVideoComposition添加声音

时间:2013-07-22 10:04:22

标签: iphone avmutablecomposition avurlasset

我正在使用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个剪辑,另一个介绍(带音乐),然后是更多视频。 我为音乐添加了一个单独的轨道,所以它看起来像 - 音乐 - 沉默 - 音乐 - 沉默。

我尝试用insertEmptyTimerange添加沉默,但这基本上搞砸了一切。然后我使用了insertTimeRange:tr ofTrack:nil ...它给了我与之前相同的结果:播放了第一个音乐片段,但是后面的每个片段都没有...

我正在把头发拉出来......

1 个答案:

答案 0 :(得分:0)

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

问题是,我定义了时间范围错误。我没有使用CMTimeRangeMake(kCMTimeZero, introDuration),而是将其定义为CMTimeRangeMake(introStart, introDuration),其中introStart是音乐的开始时间......