我的android應用程序試圖生成白噪聲,以在Android設備上播放。目前,我正在生成一個隨機數字的數組,這個數字是AudioTrack.getMinBufferSize(...),並且在一個計時器中循環。它看起來像這樣:爲什麼我的白色噪音有跳動/爆裂/ ble氣?
INTERVAL_MILLISECONDS = (int)((double)(bufSize)/(double)(nativeSampleRate * 2) * 1000);
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
synchronized(this){
//System.out.println("playing. Sample rate is + " + nativeSampleRate + ", buffer is " + data.length + " shorts long, interval is " + INTERVAL_MILLISECONDS);
track.write(data, 0, bufSize);
track.play();
}
}
}, 0, INTERVAL_MILLISECONDS);
但是,當我聽它在我的Android模擬器,我得到白噪聲具有非常快速的「跳動」或「咩咩」的節奏是很難形容。我不是音響工程師,有人能指出我爲什麼會發生這種事情嗎?
** * ** * ** * ** * ** UPDATE * ** * ** * ** * ** 我只是做了幾個變化,其中一個我確定我的樣本量是整數毫秒長,另一個是我做了樣本s整整一秒鐘。
樣本量爲8820(五毫秒長,仍然超過8192最小值),拍子沒有變化。
但是,樣本量爲44100(整整一秒),毆打就消失了。我使用的計時器是否可能在小時間間隔內不準確?
每次運行它時,跳動的速率是否相同? – Erik
Hehehe,完全不相關,但也許SlenderMan試圖帶你離開...!被禁止。非常感謝... – AedonEtLIRA
埃裏克,這是一個很好的問題,我想這可能是。我的採樣率是44100,我的緩衝區大小是8192,這意味着該模式每秒重複5.38次(樣本長度大約爲185毫秒長),並且咩咩聲音聽起來像是這樣快。關於如何平滑它的任何想法? –