【发布时间】:2019-02-16 12:24:11
【问题描述】:
我正在尝试读取 MIDI 文件并在播放音符、音符和力度时输出。 This 会很好用,但在播放音符时它不会实时输出数据。播放midi的代码:
package midistep;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Sequencer;
public class MidiReadAndPlay {
public static void main(String[] args) throws Exception {
Sequencer sequencer;
sequencer = MidiSystem.getSequencer();
sequencer.open();
InputStream is = new BufferedInputStream(new FileInputStream(new File("midifile.mid")));
sequencer.setSequence(is);
sequencer.start();
}
}
我之前提到的问题中的代码不会实时输出数据。它只是一次输出所有内容。我希望它在播放音符时输出音序器数据,以便以后使用。
【问题讨论】:
-
恐怕你需要创建两个线程,或者重写
Sequencer的逻辑。 -
我想应该可以将您自己的
Receiver连接到音序器的Transmitter。 -
@CL。我怎么能做到这一点?你有一些代码的链接吗?