У меня есть исключение, которое можно включить и выключить. Когда я пытаюсь создать новый объект Sequencer, я продолжаю получать исключение javax.sound.midi.MidiUnavailableException: Audio Device Unavailable. Итак, вот код:MidiSystem.getSequencer() возвращает Audio Device Unavailable
import javax.sound.midi.*;
public class MiniMusicPlayer1
{
public static void main(String[] args)
{
try
{
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
Sequence seq = new Sequence(Sequence.PPQ, 4);
Track track = seq.createTrack();
for (int i = 5; i < 61; i += 4)
{
track.add(makeEvent(144, 1, i, 100, i));
track.add(makeEvent(128, 1, i, 100, (i+2)));
}
sequencer.setSequence(seq);
sequencer.setTempoInBPM(220);
sequencer.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static MidiEvent makeEvent(int comd, int chan, int one, int two, int tick)
{
MidiEvent event = null;
try
{
ShortMessage a = new ShortMessage();
a.setMessage(comd, chan, one, two);
event = new MidiEvent(a, tick);
}
catch (Exception e)
{
e.printStackTrace();
}
return event;
}
}
А вот полная ошибка (при компиляции):
javax.sound.midi.MidiUnavailableException: Audio Device Unavailable
at com.sun.media.sound.MixerSynth.implOpen(MixerSynth.java:165)
at com.sun.media.sound.AbstractMidiDevice.doOpen(AbstractMidiDevice.java:144)
at com.sun.media.sound.AbstractMidiDevice.openInternal(AbstractMidiDevice.java:134)
at com.sun.media.sound.AbstractMidiDevice.getReceiverReferenceCounting(AbstractMidiDevice.java:339)
at javax.sound.midi.MidiSystem.getReceiver(MidiSystem.java:243)
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:442)
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348)
at MiniMusicPlayer1.main(MiniMusicPlayer1.java:9)
Сначала я не мог играть MIDI файлы на моем компьютере, но потом я получил его на работу , поэтому теперь я могу играть в MIDI-файлы, все в порядке. Я пытался даже закрыть каждый процесс, который использует мою звуковую карту, но ошибка все еще существует. Кто-нибудь может мне помочь?
«Во-первых я не смог играть MIDI файлы на моем компьютере, но потом я получил его на работу, так что теперь я могу играть MIDI-файлы, это нормально» Похоже, у вас есть он работает? Что вы имеете в виду? Вы должны удалить тег «компилятор-ошибки». Это типичная ошибка времени выполнения. – aioobe
Теперь я могу играть в MIDI-файлы с другой программой, скажем, робость, но я не могу заставить этот код работать. Он всегда говорит мне, что «Audio Devise не может быть». Я попытался запустить его как root, такую же ошибку. Пытался убить все процессы, которые используют мою звуковую карту, все еще получил эту ошибку. – ksemeks