【发布时间】:2017-08-14 08:27:46
【问题描述】:
我正在尝试使用接收器,以便在播放时提取 MIDI 事件信息。我想听播放的音符并同步它们是一些事件。我已阅读文档,但不确定如何实际使用发射器/接收器。如果有人可以帮助我指出如何从接收器获取 midi 事件的正确方向,我将不胜感激。
编辑:下面提供的可能副本并未解释接收器的实际工作方式。它提供了有关实现的源代码,但作为初学者,源代码对我来说太高级了,无法理解。
import javax.sound.midi.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class Main {
public static Sequencer sequencer;
public static Sequence sequence;
public static Receiver synthRcvr;
public static Transmitter seqTrans;
public static void main(String[] args) {
try {
sequencer = MidiSystem.getSequencer();
sequence = MidiSystem.getSequence(new File("test.midi"));
seqTrans = sequencer.getTransmitter();
synthRcvr = sequencer.getReceiver();
seqTrans.setReceiver(synthRcvr);
sequencer.open();
sequencer.setSequence(sequence);
sequencer.start();
} catch (IOException | MidiUnavailableException | InvalidMidiDataException e) {
System.out.println(e);
}
}
【问题讨论】:
-
我读了那个答案。其中一个链接告诉我使用发射器/接收器,但没有关于实现它或它如何工作的任何细节。另一个给出了显示接收器转储的源代码,但源代码对我来说非常先进,我在连接接收器的实际使用方式时遇到了麻烦。
-
你自己的对象必须实现
Receiver接口。 -
谢谢你,我设法让它工作了。