实时改变声音的音调 (Swift)
Changing the pitch of a sound in realtime (Swift)
在过去的几周里,我一直在尝试找到一种从 swift 中实时控制音频频率(即更改音频文件的音调)的简单方法。
我试过 AVAudioPlayer.rate 但这只会改变速度。
我什至尝试将 AVAudioUnitTimePitch 连接到音频引擎,但没有成功。
AVAudioUnitTimePitch 只是给我一个错误,并且 rate 改变了播放速度,这不是我需要的。
我想做的是,将声音调高或调低,比如从 -1.0 到 2.0(音频源。duration/2 这样播放速度会提高一倍。
即使我必须使用外部库或 类,你们知道有什么方法可以做到这一点吗?
谢谢,我不知道如何进行。
如果您使用音频单元 API,iOS 内置 kAudioUnitSubType_NewTimePitch 音频单元组件可用于在以相同速度播放音频的同时改变音高。例如kNewTimePitchParam_Rate 和 kNewTimePitchParam_Pitch 参数是独立的。
音频单元框架有一个(当前未弃用)C API,但可以从 Swift 代码调用 C API 函数。
在过去的几周里,我一直在尝试找到一种从 swift 中实时控制音频频率(即更改音频文件的音调)的简单方法。 我试过 AVAudioPlayer.rate 但这只会改变速度。 我什至尝试将 AVAudioUnitTimePitch 连接到音频引擎,但没有成功。 AVAudioUnitTimePitch 只是给我一个错误,并且 rate 改变了播放速度,这不是我需要的。 我想做的是,将声音调高或调低,比如从 -1.0 到 2.0(音频源。duration/2 这样播放速度会提高一倍。
即使我必须使用外部库或 类,你们知道有什么方法可以做到这一点吗?
谢谢,我不知道如何进行。
如果您使用音频单元 API,iOS 内置 kAudioUnitSubType_NewTimePitch 音频单元组件可用于在以相同速度播放音频的同时改变音高。例如kNewTimePitchParam_Rate 和 kNewTimePitchParam_Pitch 参数是独立的。
音频单元框架有一个(当前未弃用)C API,但可以从 Swift 代码调用 C API 函数。