我已经编写了一个获取音频频率的代码。
我已经使用零交叉算法将短阵列转换为频率(int)。 它工作正常。
每当我在我的PC上播放2500Hz音频时,它给了我完美的价值。
例如2500Hz的= 1400
如果我打为 2500Hz的音频频率10秒它给了我为 10秒。
所以我可以说,它工作正常,没有任何问题。代码没有任何问题。Android中的音频频率
但现在我的问题是,每当我改变设备的输出也改变了。
例如上面的输出我得到的,当我使用三星GT-I5700。(安卓2.2)
但是当我使用微-MAX A-60(安卓2.1)它给了我这样2500Hz的= 771输出。
我找不到原因,为什么输出在设备更改时更改?
我该如何解决这个问题?
安卓版和音频有没有关系?
注:
我有一根电缆,可以将PC扬声器的输出提供给Devices MIC。所以我可以在PC上播放Tone并直接发送到Device MIC。
也许这两种设备的采样率不同?但是请注意,使用过零点是测量频率的一种非常不可靠的方法 - 它仅适用于零噪声的纯音(正弦曲线)。增加滞后效应可能会有所帮助,但它永远不会是一个好的解决方案。 –
请将您的代码粘贴到这里,我们希望看到它的顺序ti帮助ypu,如果您已经拥有它,请与我们分享,请致电 感谢VanPersie – 2011-09-28 21:30:37