实时改变声音的音高(Swift)

时间:2017-06-29 19:13:46

标签: swift audio pitch

过去几周,我一直试图找到一种简单的方法来实时控制音频(I.E.改变音频文件的音高)。 我尝试过AVAudioPlayer.rate,但这只会改变速度。 我甚至尝试将AVAudioUnitTimePitch连接到音频引擎但没有成功。 AVAudioUnitTimePitch只是给我一个错误,速率改变了播放速度,这不是我需要的。 我想做的是,发出一个更高或更低音高的声音,比如从-1.0到2.0(audio source.duration / 2,这样它的播放速度会快一倍。

即使我必须使用外部库或类,你们是否知道有任何方法可以做到这一点?

谢谢,我很难过如何继续。

1 个答案:

答案 0 :(得分:0)

如果您使用音频单元API,iOS内置的kAudioUnitSubType_NewTimePitch音频单元组件可用于在以相同速度播放音频时改变音高。例如kNewTimePitchParam_Rate和kNewTimePitchParam_Pitch参数是独立的。

Audio Unit框架有一个(目前尚未弃用的)C API,但可以从Swift代码调用C API函数。

相关问题