Ios 当与背景声音一起播放时,录制的音频与背景声音不同步

Ios 当与背景声音一起播放时,录制的音频与背景声音不同步,ios,avaudioplayer,avaudiorecorder,avmutablecomposition,Ios,Avaudioplayer,Avaudiorecorder,Avmutablecomposition,我试图实现的是制作一种卡拉OK应用程序,在用户唱歌时在后台播放音乐。使用耳机,一切似乎都很好,但当我在扬声器上尝试录制和合并音频文件时,我面临一些同步问题 我播放一个音频文件并立即开始录音。录制完成后,我会同时播放录制的音频文件和原始音轨,而通过AVAudioPlayer播放时,两个文件的音频之间似乎有一点延迟(使用耳机时不会出现此问题,因为录制的音频没有从扬声器端口在后台播放音乐) 我尝试使用录制文件(因为我还必须合并视频)同时使用AVAudioRecorder两种情况下都会有轻微的延迟。通常

我试图实现的是制作一种卡拉OK应用程序,在用户唱歌时在后台播放音乐。使用耳机,一切似乎都很好,但当我在扬声器上尝试录制和合并音频文件时,我面临一些同步问题

我播放一个音频文件并立即开始录音。录制完成后,我会同时播放录制的音频文件和原始音轨,而通过
AVAudioPlayer播放时,两个文件的音频之间似乎有一点延迟(使用耳机时不会出现此问题,因为录制的音频没有从扬声器端口在后台播放音乐)

我尝试使用录制文件(因为我还必须合并视频)同时使用
AVAudioRecorder
两种情况下都会有轻微的延迟。通常情况下,您无法判断,但我必须同时播放录音和原始文件,因此它似乎有回声。由于音频有相当多的节拍,因此它也显得非常不协调

另外,如果我使用
AVMutableComposition
从第0秒开始合并所有文件,仍然会有延迟,这使我相信录制本身有延迟,即使我同时启动
录制
播放
方法:

func startRecording(){
    audioPlayer.play()
    videoRecorder?.record()
    delegate?.didStartRecording()
}
//prepareToRecord has been called way before during initialization of the class
现在问题解决了,如果我在所有地方强制增加0.1秒的回放延迟,但我更希望真正了解导致此问题的原因并找出解决方案