Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IOS中使视频的音频轨迹淡入淡出_Ios_Audio_Video_Avfoundation - Fatal编程技术网

如何在IOS中使视频的音频轨迹淡入淡出

如何在IOS中使视频的音频轨迹淡入淡出,ios,audio,video,avfoundation,Ios,Audio,Video,Avfoundation,我正在使用AVMutableComposition和AVAssetExportSession等工具将音乐与视频合并(输出为mp4) 整个过程运行良好,但当我尝试使用音频混音添加淡入效果时,导出将失败 下面是添加淡入淡出效果的代码片段(如果有必要的话) AVMutableAudioMix* exportAudioMix = nil; if(CMTimeCompare(videoAsset.duration, CMTimeMakeWithSeconds(2, 25)) == 1) { exp

我正在使用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
AVMutableAudioMix*exportAudioMix=nil;
如果(CMTimeCompare(videoAsset.duration,CMTimeMakeWithSeconds(2,25))==1){
exportAudioMix=[AVMutableAudioMix audioMix];
AVMutableAudioMixInputParameters*mixParam
=[AVMutableAudioMixInputParameters AudioMixInputParameters SwithTrack:compositionAudioTrack];

对于(inti=0;i好吧,我经过一番努力才发现了这个问题。我的答案在这里,以防其他人遇到这个错误(尽管看起来这个问题只是由一个愚蠢的错误引起的)

如何设置音频混音没有问题。问题是我使用passthrough预设初始化了导出会话,它将按原样接收输入,如果存在修改音频曲目的音频混音,则会失败

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