Android 6.0+:没有声音使用新的MIDI API

时间:2017-05-16 14:01:07

标签: android midi

我正在使用new MIDI API来播放一些MIDI音符。但是,我无法听到任何声音,也没有任何异常被抛出。相同的代码如下:

//initialising the MidiReceiver
private MidiReceiver midiReceiver;
midiReceiver = new MidiReceiver() {
    @Override
    public void onSend(byte[] msg, int offset, 
        int count, long timestamp) throws IOException {

    }
};

/*Then in my loop containing note_on or note_off events*/
byte[] buffer = new byte[32];
int numBytes = 0;
int channel = 2; // MIDI channels 1-16 are encoded as 0-15.               
// NOTE_STATUS is either 0x90 or 0x80
buffer[numBytes++] = (byte)(NOTE_STATUS + (channel - 1)); 
buffer[numBytes++] = (byte)noteValue; // the required MIDI pitch
buffer[numBytes++] = (byte)127; // max velocity
int offset = 0;
midiReceiver.send(buffer, offset, numBytes);

我在这里做错了什么?我认为一定是因为onSend方法是空的。如何使用它来让我的应用程序回放Android设备中的注释?

1 个答案:

答案 0 :(得分:2)

我在documentation中找不到新MIDI API实际上让您合成音频的任何指示,因此,您似乎需要自己生成声音。

也许this library可能有用。