我正在使用 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,它的行为相同。所以我认为问题不应该存在。