我正在编写一些代码来使用Java声音库播放音乐。
private Sequencer sequencer ;
...
void play(Sequence sequence) {
sequencer.open() ;
sequencer.setSequence(sequence) ;
sequencer.start() ; // plays sequence
sequencer.close() ;
}
当我调用play方法19次时,声音从扬声器中发出。但是,我第20次调用它时,没有声音发出。无论如何,这总是会发生。我需要重新启动程序才能再次获得声音。
这个问题有解决方法吗?还是一些调试方法?或在某个地方可以获得MIDI声音API的支持?
最佳答案
我不知道为什么会停止。也许与midi中只有16个通道有关,但是您不必重复打开音序器,而是可以重用音序器并更改其音序。这是我所拥有的,对我有用:
public void play(Sequence sequence) {
sequencer.setSequence(sequence);
sequencer.stop();
sequencer.setTickPosition(0);
sequencer.start();
}