2013-07-22 24 views
0

我正在使用AVMutableVideoComposition添加视频和音频。多次向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 ......这使我有同样的结果之前:第一音乐片段播放,但每次下夹子不会...

我拉我的头发在这...

回答

0

好吧,这是真的愚蠢...... :)

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