我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮。)
我发现了一个名为 iPhreak 的开源应用程序。据说它会生成 DTMF 音来欺骗公用电话(我向你保证这不是我的意图 - 我的公司处理基于电话的内部通信系统)。该应用程序的唯一问题是开源项目中缺少文件。也许其他人过去已经让这个项目开始工作了?
如果有人知道我会在哪里寻找这样的东西,我将非常感谢我的投票:)
应该很容易自己生成。
鉴于硬件可以以 44.1 khz 播放 pcm 缓冲区(16 位样本)(它肯定可以通过某些库函数或其他函数实现),您只需计算波形即可:
const int PLAYBACKFREQ = 44100;
const float PI2 = 3.14159265359f * 2;
void generateDTMF(short *buffer, int length, float freq1, float freq2)
{
int i;
short *dest = buffer;
for(i=0; i<length; i++)
{
*(dest++) = (sin(i*(PI2*(PLAYBACKFREQ/freq1))) + sin(i (PI2*(PLAYBACKFREQ/freq2)))) * 16383;
}
}
16383 已完成,因为我使用加法合成(只需将正弦波加在一起)。因此最大结果是 -2.0 - 2.0 所以乘以 16383 后我或多或少得到最大 16 位结果:-32768 - +32767
编辑:
这 2 个频率是其他回答者链接到的维基百科文章中的频率。两个独特的频率产生 DTMF 声音
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)