我正在创建一个可以生成实时乐器声音的应用程序,我正计划使用Android Marshmallow(6.0版)中的新Midi API.我在这里阅读了软件包概述文档http://developer.android.com/reference/android/media/midi/package-summary.html,我知道如何生成Midi笔记,但我仍然不确定:我该怎么做在我生成他们的Midi数据后实际播放这些音符?
我需要合成器程序才能播放Midi音符吗?如果是这样,我是否必须自己制作或者是由Android或第三方提供的?
我是Midi的新手所以请尽量用你的答案描述.
到目前为止 我尝试过:我创建了一个Midi管理器对象并打开了一个输入端口
MidiManager m = (MidiManager)context.getSystemService(Context.MIDI_SERVICE);
MidiInputPort inputPort = device.openInputPort(index);
Run Code Online (Sandbox Code Playgroud)
然后,我已经向端口发送了测试noteOn midi消息
byte[] buffer = new byte[32];
int numBytes = 0;
int channel = 3; // MIDI channels 1-16 are encoded as 0-15.
buffer[numBytes++] = (byte)(0x90 + (channel - 1)); // note on
buffer[numBytes++] = (byte)60; // pitch is middle C
buffer[numBytes++] = (byte)127; // max velocity
int offset = 0;
// post is non-blocking
inputPort.send(buffer, offset, numBytes);
Run Code Online (Sandbox Code Playgroud)
我还设置了一个课程来接收midi音符信息
class MyReceiver …Run Code Online (Sandbox Code Playgroud) 我有一个通过SONiVOX EAS库播放MIDI文件的应用程序.是否可以将自己的DLS或SoundFont波表加载到播放器中并让库使用这些声音进行MIDI播放?