演習として、タイマーとしてThread.sleepを使用し、サウンドにJMFを使用して、Javaでメトロノームを作成しようとしています。非常にうまく機能していますが、何らかの理由で、JMFは1分あたり最大207ビートのサウンドしか再生していないようです。
私のメトロノームクラスから:
public void play() {
soundPlayer.play();
waitPulse();
play();
}
私のSoundPlayerクラスから:
public void play() {
new Thread(new ThreadPlayer()).start();
}
private class ThreadPlayer implements Runnable {
public void run() {
System.out.println("Click");
player.setMediaTime(new Time(0));
player.start();
}
}
SoundPlayer.play()をスレッドとして機能させて、違いが生じるかどうかをテストしましたが、そうではありません。テンポは約207bpmまで簡単に変更できますが、タイマーを1000bpmに設定しても、サウンドは約207bpmより速く再生されません。
System.out.println("Click");
ThreadPlayer.run()の中に入れて、ループが正しく機能しているかどうかを確認しました。正しく機能しています。
問題は私のJMFの実装にあるようです。簡単な解決策があると確信していますが、誰かが私を助けてくれますか?
手伝ってくれてどうもありがとう!:)