Воспроизведение MIDI-файлов возвращает ошибку

1

Я написал класс, чтобы играть в 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();
    }
}
Теги:
midi

1 ответ

0

Из того, что я понимаю, это ошибка затмения, а не что-то конкретное для вашего кода. Я исправил это, просто перезагрузив компьютер и затмение. Ошибка исчезла, надеюсь, это поможет! Я буду продолжать исследования.

редактировать:

Если перезапуск не устраняет проблему, попробуйте прочитать это. Они подробно обсуждают проблему и фиксируют ее.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню