在其中一个iOS层中是否有API,我可以通过指定其赫兹来生成音调.我要做的是产生DTMF音调.此链接说明DTMF音调如何由2个音调组成:
http://en.wikipedia.org/wiki/Telephone_keypad
这基本上意味着我应该同时播放2个音调...
那么,是否存在这样的事情:
SomeCleverPlayerAPI(697,1336);
如果花了整个上午搜索这个,并找到了许多方法来播放声音文件,但没有关于如何生成特定音调的内容.有谁知道,拜托......
没有 iOS API 可以为您进行音频合成。
但是您可以使用音频队列或音频单元 RemoteIO API 来播放原始音频样本,生成 2 个正弦波相加的样本数组(例如 1 秒内 44100 个样本),然后将结果复制到音频回调中(1024 个样本) ,或回调请求的任何内容)。
请参阅 Apple 的 aurioTouch 和 SpeakHere 示例应用程序,了解如何使用这些音频 API。
样本可以通过以下简单的方法生成:
sample[i] = (short int)(v1*sinf(2.0*pi*i*f1/sr) + v2*sinf(2.0*pi*i*f2/sr));
Run Code Online (Sandbox Code Playgroud)
其中 sr 是采样率,f1 和 f1 是 2 个频率,v1 + v2 之和小于 32767.0。您可以为此添加舍入或噪声抖动以获得更清晰的结果。
如果生成的波形在末端没有逐渐变细到零,请小心单击。
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |