我已經編寫了一個獲取音頻頻率的代碼。
我已經使用零交叉算法將短陣列轉換爲頻率(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