在Android中解析自定义创建的MIDI文件

时间:2017-06-14 17:00:34

标签: java android midi

我重新创建了MIDI文件而没有更改任何Meta个事件。我在每个SysEx (System Exclusive)note_on事件下添加了note_off条消息。我使用this库来解析MIDI文件并提取曲目以获取MIDI信息。

以下是我尝试的一些示例代码(我在原始文件夹中有MIDI文件)。

try {

    InputStream is = getResources().openRawResource(R.raw.mysamplemidifile);
    File tempFile = File.createTempFile("temp", ".mid");
    tempFile.deleteOnExit();
    FileOutputStream out = new FileOutputStream(tempFile);
    IOUtils.copy(is, out);
    MidiFile midi = new MidiFile(tempFile);
    ArrayList<MidiTrack> tracks = midi.getTracks();
    MidiTrack sysExTrack = tracks.get(tracks.size() - 1);

} catch (Exception e) {
    e.printStackTrace();
}

最初MIDI信息的总数约为2500。但该库只能获取大约2300个MIDI消息。 sysExTrack变量包含未完全解析的SysEx数据。

我无法理解这里出了什么问题。对此有任何帮助表示赞赏。

修改 MIDI文件在iOS中正确解析。

0 个答案:

没有答案