0

我无法编译我的代码,我什至从 github 复制了代码在这里

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 ex) {
            ex.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) {

        }
        return event;
    }
}

我输入javac MiniMusicPlayer1.java,它给了我一些错误,都与 midievent 有关。第一个错误是 Midievent.java:1 error: class...expected。

我看到的主要错误是

“无法访问 Midievent...错误的源文件 .\MidiEvent.java .....文件不包含类 MidiEvent...。请删除或确保它出现在源路径的正确子目录中

问题可能是什么?我阅读其他人使用相同的代码没有问题

4

2 回答 2

1

除非您在别处定义了 MidiEvent 类,否则此代码将无法编译,因为它需要 MidiEvent 类。

根据错误消息,您似乎有一个MidiEvent.java文件,但是 java 编译器无法在其中找到类MidiEvent,原因可能是文件格式错误,或者文件名称不正确。

于 2013-10-18T22:00:49.210 回答
1

确保其他源文件名称的大写(MidiEvent.java)和其中类名称的大写(Midievent,看似)相同。

于 2013-10-18T22:02:05.187 回答