我想在运行时播放可以变化的简单声音,例如能够以不同的频率播放声音。基本上,我想能够在运行时产生一个简单的旋律,然后播放它。合成应用程序是如何做到这一点的?我想有一种通过CoreAudio来实现它的方法。使用SDK有没有办法做到这一点?
如果您知道如何创建音频波形的PCM样本,您可以在所需的频率和音量下创建所需时长的波形,然后将该原始波形数据提供给Audio Queue API或Audio Unit RemoteIO API。
这里有一个稍微长一些的使用这些API播放音调的描述。
有许多方法可以实现这一点。最简单的方法是记录所有需要的音符,然后使用计时器创建一个序列。首先尝试使用AVAudioPlayer,这是最简单的方法。如果您需要直接处理音频数据,则可以使用Audio Queue Services或OpenAL。