我正在使用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 :(得分:0)
问题是,我定义了时间范围错误。我没有使用CMTimeRangeMake(kCMTimeZero, introDuration)
,而是将其定义为CMTimeRangeMake(introStart, introDuration)
,其中introStart
是音乐的开始时间......