【问题标题】:How to make the audio track of a video fade in IOSIOS如何让视频的音轨淡出
【发布时间】:2013-10-09 08:06:36
【问题描述】:

我正在使用 AVMutableComposition 和 AVAssetExportSession 以及其他东西将音乐与视频合并(输出是 mp4)

整个事情都很好,但是当我尝试使用音频混合添加淡入淡出效果时,导出会失败

这是添加淡入淡出效果的代码片段

AVMutableAudioMix* exportAudioMix = nil;
if(CMTimeCompare(videoAsset.duration, CMTimeMakeWithSeconds(2, 25)) == 1) {
    exportAudioMix = [AVMutableAudioMix audioMix];
    AVMutableAudioMixInputParameters *mixParam 
        = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:compositionAudioTrack];
    for(int i = 0; i <= 5; i++) {
        CMTime t = CMTimeMake(i * 5 , 25);
        [mixParam setVolume:0.2 * i atTime:t];
        [mixParam setVolume:0.2 * (5 - i) atTime:CMTimeAdd(videoAsset.duration, t)];
    }
    exportAudioMix.inputParameters = @[mixParam];
}
_assetExport.audioMix = exportAudioMix;//export won't fail if I remove this line

我尝试使用 setVolumeRamp... 但它不起作用(无法导出)所以我更改为 setVolume,它的行为相同。所以我认为问题不应该存在。

【问题讨论】:

    标签: ios audio video avfoundation


    【解决方案1】:

    好吧,经过一番努力,我发现了问题所在。我的答案是在这里,以防其他人遇到这个错误(尽管这个问题似乎只是由一个愚蠢的错误引起的)。

    我如何设置音频混合没有问题。问题是我使用 passthrough 预设初始化了导出会话,它会按原样接受输入,并且如果有修改音轨的音频混合会失败。 p>

    我将预设更改为 AVAssetExportPresetHighestQuality,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多