Java Midi секвенсор перестает производить звук через несколько раз. Как мне отладить / решить? - PullRequest
4 голосов
/ 23 мая 2011

Я пишу некоторый код для воспроизведения музыки, используя звуковую библиотеку Java.

private Sequencer sequencer ;
...
void play(Sequence sequence) {
    sequencer.open() ;
    sequencer.setSequence(sequence) ;
    sequencer.start() ; // plays sequence
    sequencer.close() ;
}

Когда я запускаю метод воспроизведения 19 раз, из моего динамика выходит звук.Тем не менее, в 20-й раз, когда я призываю его, нет звука.Это всегда происходит, несмотря ни на что.Мне нужно перезапустить программу, чтобы снова получить звук.

Есть ли какое-то решение этой проблемы?Или какой-то способ отладить это?Или где-нибудь, где я могу получить поддержку по звуковому API MIDI?

1 Ответ

3 голосов
/ 16 января 2012

Я не знаю, почему это останавливается.Возможно, это как-то связано с тем, что в midi всего 16 каналов, но вместо того, чтобы открывать секвенсор несколько раз, вы можете повторно использовать секвенсор и изменить его последовательность.Вот что у меня есть и у меня работает:

public void play(Sequence sequence) {
    sequencer.setSequence(sequence);
    sequencer.stop();
    sequencer.setTickPosition(0);
    sequencer.start();
}
...