1

我正在尝试在Android应用程序中从 MIDI 文件中的正确时间检索所有 MIDI 事件。

以下代码使用javax.sound.midiAPI 在标准 JVM(在我的计算机上)上工作。

Sequencer sequencer = MidiSystem.getSequencer();

Sequence sequence = MidiSystem.getSequence(new File(FILENAME));
sequencer.setSequence(sequence);

sequencer.open();

sequencer.getTransmitter().setReceiver(new Receiver()
{
    @Override
    public void send(MidiMessage message, long timeStamp)
    {
        System.out.println(Arrays.toString(message.getMessage()));
    }

    @Override
    public void close()
    {
    }
});

sequencer.start();

不幸的是,javax.sound.*包在 Android 上不可用。Github ( https://github.com/kshoji/javax.sound.midi-for-Android )上提供了适用于 Android 的移植,但我上面的代码示例不起作用(sequencer.getTransmitter()返回 null)。

有谁知道这是怎么做到的吗?对于我想做的事情,我没有找到任何有趣的库(http://www.midi.org/aboutmidi/android.php )。

谢谢你。

4

0 回答 0