3
此代碼產生連續的聲音,並在從ThreadMain類中除去df.calculateFreq()時起作用。當我把它放在下面的genTone()方法中時,控制檯只打印一次「測試」,然後在沒有它的情況下停止工作。它沒有足夠的時間來處理額外的數據嗎?謝謝,代碼中沒有錯誤。安排固定費率拒絕工作
public ThreadMain() {
audio = new AudioGenerator(10000);
audio.createPlayer();
dF = new DetermineFreq();
exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
//RUN FUNC every 20 millisecond
genTone();
}
}, 0, 50, TimeUnit.MILLISECONDS);
}
public void genTone(){
System.out.println("test");
dF.calculateFreq(); <--- this
tone = audio.getSineWave(noteDuration, 10000, 200);
audio.writeSound(tone);
}
public class DetermineFreq{
MainActivity main;
float accelX;
public void DetermineFreq() {
main = new MainActivity();
}
public void calculateFreq() {
accelX = main.getAccelX();
System.out.println(accelX);
}
}