作为一项练习,我正在尝试使用 Thread.sleep 作为计时器和 JMF 来创建一个带有 Java 的节拍器。它工作得很好,但出于某种原因,JMF 似乎只以每分钟最多 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 的实现有关。我很确定有一个简单的解决方案,有人可以帮助我吗?
非常感谢你的帮助!:)