iPhone的耳机插孔可以用作设备的输入吗?

时间:2012-05-22 17:25:26

标签: core-audio audiounit

我正在通过iPhone的耳机插孔工作遥控器。它要求:

  • 在发送模式下,发送信号(19kHz)和信号(10kHz)分别为1和0
  • 在学习模式下,它会从其他遥控器接收相应的信号

我读了一个网站,它介绍了AudioUnit(http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html)来发送音调

但学习模式怎么样?我的应用程序如何检测19kHz和10kHz为1和0?

感谢。

3 个答案:

答案 0 :(得分:1)

是的,这个想法应该有效,但19kHz可能会推动iPhone的录音功能极限。你可以找到一个完整的comparison of iPhone device frequency responses here。请注意,19kHz落在奈奎斯特频率的边缘,所以它会有更多的滚降。因此,学习模式可能是必要的功能,具体取决于设备系列。

答案 1 :(得分:0)

简单的DSP Goertzel滤波器将能够以低数据速率检测这些音调。要获得更高的数据速率,可以在业余无线电杂志或网站上寻找FSK解调代码。

答案 2 :(得分:0)

您有2个问题需要解决:

  1. 如何获取音频
  2. 如何检测音调。
  3. 首先:音调生成示例代码为输出设置audiounit,而不为输入设置。 获取输入的一种方法是使用aurioTouch BUT,根据我的经验,通过SpeakHere示例代码更加简单。你可以在这里找到一个好主意http://www.youtube.com/watch?v=bINtRRyblZA 第二:要检测音调,您可以使用由FFT和vDsp(或Goertzel滤波器制作的音调检测器,但我不知道您是否可以在ObjC中找到已经制作的代码)

    最后,您可以使用SpeakHere简单的谷歌搜索找到输入和音高检测的示例代码。 希望这个帮助