我已经编写了一个获取音频频率的代码。
我使用过零算法将短数组转换为频率(int)。它工作正常。
每当我在我的 PC 中播放 2500Hz 音频时,它都给了我完美的价值。
例如 2500Hz=1400
如果我播放2500Hz音频10 秒,它会给我1400 10 秒。
所以我可以说它工作正常,没有任何问题。代码没有任何问题。
但现在我的问题是,每当我改变设备时,输出也会改变。
例如,当我使用三星 GT-i5700(Android 2.2)
时,我得到了上面的输出。
但是当我使用Micro-max A-60(Android 2.1)时,它给了我这样的输出2500Hz=771。
我找不到原因,为什么更改设备时会更改输出?
我该如何解决这个问题?
安卓版本和音频有关系吗?
注意:
我有将 PC 扬声器输出到设备 MIC 的电缆。所以我可以在 PC 中播放 Tone 并将其直接发送到 Device MIC。