java - Midi 音序器异常

标签 java midi

我正在尝试以下操作,

 MidiDevice.Info[] devices = MidiSystem.getMidiDeviceInfo();
        if (devices.length == 0) {
            System.out.println("No MIDI devices found");
        } else {
            for (MidiDevice.Info dev : devices) {
                System.out.println(dev);
            }
        }

        Sequencer player = MidiSystem.getSequencer();
        player.open();

但是,我得到以下信息,

Real Time Sequencer
javax.sound.midi.MidiUnavailableException
at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1078)
at javax.sound.midi.MidiSystem.getReceiver(MidiSystem.java:240)
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:442)
at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348)
at MidiPlayTest.play(MidiPlayTest.java:23)
at MidiPlayTest.main(MidiPlayTest.java:56)
Caused by: java.lang.IllegalArgumentException: Requested device not installed
at javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1130)
at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1076)
... 5 more

最佳答案

嗯,似乎有 Midi 设备,但这些设备不可用,如 MidiUnavailableException 所示。

查看该异常的来源,即您对 MidiSystem.getSequencer() 的调用。在 JavaDoc在该方法中,您会发现以下内容:

Throws:
MidiUnavailableException - if the sequencer is not available due to resource restrictions, or no sequencer is installed in the system, or if connected is true, and there is no Receiver available by any installed MidiDevice

从那里继续,即查看哪种情况可能导致该异常。

关于java - Midi 音序器异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8276769/

相关文章:

java - Jar 文件类路径问题

java - 解析从命令行作为参数传递给 Java 的文件

java - MIDI - MidiMessage 程序随不同银行的乐器而变化

loops - iOS9 Beta 和 MusicTrackLoopInfo

c++ - 编译 RtMidi - Qt 项目、mingw

c - 在 C 中生成 MIDI 文件

Java 中类似 JavaScript 的对象数据类型?

java.io 和 socket.getInputStream()

java - SQL 查询正常,但使用 Hibernate "Multiple ResultSets were returned by the query."- 错误

没有关闭事件的 MIDI 音符打开事件