在iOS上实时录制,修改音高和播放音频

我只是想知道是否有人可以向我解释如何录制音频,修改音频(音高?)并在iPhone上播放给用户。

我不是要求别人为我做这件事,只是提示我应该怎么做。 通过文档查看我似乎应该使用AVAudioSessionAVAudioRecorderAVAudioPlayerAVFoundation.Framework )来录制播放部分。 或者我应该使用CoreAudio.Framework ? 然后是关于修改音频的问题。

OpenAL是一个库,支持您正在搜索的内容。 它在iPhone上很受欢迎,所以也许你应该看看这个。 即只需一个命令即可轻松更改样本的音高:

 alSourcef(source, AL_PITCH, pitch); 

但是我不确定,如果音调改变也可以使用AVFoundation或CoreAudio类 – 从不使用它们。

AVAudioUnitTimePitch应该可以解决问题。

来自udacity.com的示例代码使用Swift进行iOS应用程序开发的简介 :

 func playAudioWithVariablePitch(pitch: Float) { audioEngine.stop() audioEngine.reset() let audioPlayerNode = AVAudioPlayerNode() audioEngine.attachNode(audioPlayerNode) let changePitchEffect = AVAudioUnitTimePitch() changePitchEffect.pitch = pitch audioEngine.attachNode(changePitchEffect) audioEngine.connect(audioPlayerNode, to:changePitchEffect, format:nil) audioEngine.connect(changePitchEffect, to:audioEngine.outputNode, format:nil) audioPlayerNode.scheduleFile(audioFile, atTime:nil, completionHandler: nil) try! audioEngine.start() audioPlayerNode.play() } 

这可能有所帮助。 DIRAC-mobile ,一个用于复音音频信号的实时速度和音调操作的库。 它们还有示例代码,您可以在下载库后查看它们。