iOS:在给定Hz参数的情况下在iPad上产生声音?

iOS:在给定Hz参数的情况下在iPad上产生声音?,ipad,ios,audio,Ipad,Ios,Audio,在其中一个iOS层中是否有API,我可以通过指定其赫兹来生成音调。我想做的是生成DTMF音调。此链接说明DTMF音调如何由2个音调组成: 这基本上意味着我需要同时播放两个音调 那么,是否存在这样的情况: SomeCleverPlayerAPI(6971336) 如果花了一上午的时间来搜索这个,并且找到了许多播放声音文件的方法,但是没有找到如何生成特定音调的方法。有人知道吗,请…没有iOS API为您进行音频合成 但是,您可以使用音频队列或音频单元RemoteIO API播放原始音频样本,生成一

在其中一个iOS层中是否有API,我可以通过指定其赫兹来生成音调。我想做的是生成DTMF音调。此链接说明DTMF音调如何由2个音调组成:

这基本上意味着我需要同时播放两个音调

那么,是否存在这样的情况:

SomeCleverPlayerAPI(6971336)


如果花了一上午的时间来搜索这个,并且找到了许多播放声音文件的方法,但是没有找到如何生成特定音调的方法。有人知道吗,请…

没有iOS API为您进行音频合成

但是,您可以使用音频队列或音频单元RemoteIO API播放原始音频样本,生成一个2个正弦波相加的样本数组(比如44100个样本,值1秒),然后将结果复制到音频回调中(每次1024个样本,或回调请求的任何内容)

有关如何使用这些音频API,请参阅苹果的aurioTouch和SpeakHere示例应用程序

样本可以通过以下简单方式生成:

sample[i] = (short int)(v1*sinf(2.0*pi*i*f1/sr) + v2*sinf(2.0*pi*i*f2/sr));
其中sr为采样率,f1和f1为2个频率,v1+v2之和小于32767.0。您可以为此添加舍入或噪波抖动,以获得更清晰的结果

如果生成的波形末端没有逐渐变为零,请小心单击。

查看AU(AudioUnit)API。这是相当低级的,但它可以做你想做的。在这里可以找到一个很好的介绍(可能已经为您提供了所需的内容):

在我看来,最简单的方法是准备包含所有DTMF组合(12或16(?)的文件,然后播放它们,而不是生成音调。