Я написал класс, чтобы играть в midi файл. Я тестировал этот класс, запустив его в своем потоке, и он воспроизводит намеченную песню, но также печатает предупреждение красным:
May 21, 2014 12:55:03 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Мой код работает, но я хотел бы знать, что означает это предупреждение и как его исправить.
public class MusicBox implements Runnable {
private Sequence midi;
private Sequencer sequencer;
private boolean playSong;
public MusicBox() {
try {
this.midi = MidiSystem.getSequence(new File("src//BennyHill.mid"));
this.sequencer = MidiSystem.getSequencer();
} catch (InvalidMidiDataException e) {
System.out.println("invalidMidiData exception in Music Box");
e.printStackTrace();
} catch (IOException e){
System.out.println("IO exception in Music Box");
e.printStackTrace();
} catch (MidiUnavailableException e) {
System.out.println("Midi Unavailable Exception in Music Box");
e.printStackTrace();
}
this.playSong = false;
}
@Override
public void run() {
try {
this.sequencer.open();
this.sequencer.setSequence(this.midi);
} catch (MidiUnavailableException e) {
System.out.println("MidiUnavailableException in play music (run)");
e.printStackTrace();
} catch (InvalidMidiDataException e) {
System.out.println("InvalidMidiDataException in play music (run)");
e.printStackTrace();
}
this.sequencer.start();
while(this.playSong){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
//do nothing
}
}
this.sequencer.stop();
this.sequencer.close();
}
}
Из того, что я понимаю, это ошибка затмения, а не что-то конкретное для вашего кода. Я исправил это, просто перезагрузив компьютер и затмение. Ошибка исчезла, надеюсь, это поможет! Я буду продолжать исследования.
редактировать:
Если перезапуск не устраняет проблему, попробуйте прочитать это. Они подробно обсуждают проблему и фиксируют ее.