【问题标题】:Add sound to AVMutableVideoComposition multiple times多次向 AVMutableVideoComposition 添加声音
【发布时间】:2013-07-22 10:04:21
【问题描述】:

我正在使用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...,这给了我与以前相同的结果:播放了第一个音乐剪辑,但后面的每个剪辑都不会...

我正在为此拉头发......

【问题讨论】:

    标签: iphone avmutablecomposition avurlasset


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多