有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我已经重新创建了一个MIDI文件,但没有更改它的任何Meta事件。我只是在每个note_onnote_off事件下添加了SysEx (System Exclusive)消息。我使用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) 个答案