Java by API/javax.microedition.media.control/MIDIControl
Содержание
MIDIControl.CONTROL_CHANGE
<source lang="java">
import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Display; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.control.MIDIControl; import javax.microedition.midlet.MIDlet; public class MIDIEventsMIDlet extends MIDlet {
Display display = null; Alert alert = new Alert("Message"); public MIDIEventsMIDlet() { display = Display.getDisplay(this); alert.setString("Working..."); alert.setTimeout(Alert.FOREVER); } public void startApp() { display.setCurrent(alert); try { Player p = Manager.createPlayer(Manager.MIDI_DEVICE_LOCATOR); p.prefetch(); MIDIControl mControl = (MIDIControl) p .getControl("javax.microedition.media.control.MIDIControl"); if (mControl == null) throw new Exception("MIDIControl not available"); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 100); Thread.sleep(100); mControl.shortMidiEvent(192 | 11, 14, 0); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.CONTROL_CHANGE | 11, 7, 50); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 0); } catch (Exception e) { alert.setString(e.getMessage()); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
}
</source>
MIDIControl: isBankQuerySupported()
<source lang="java">
import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Display; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.control.MIDIControl; import javax.microedition.midlet.MIDlet; public class MIDICapabilitiesMIDlet extends MIDlet {
public void startApp() { try { Player p = Manager.createPlayer(Manager.MIDI_DEVICE_LOCATOR); p.prefetch(); MIDIControl mControl = (MIDIControl) p .getControl("javax.microedition.media.control.MIDIControl"); String msg = mControl.isBankQuerySupported() ? "MIDIControl is fully supported" : "Minimum MIDIControl is provided"; Display.getDisplay(this).setCurrent(new Alert("Message", msg, null, AlertType.INFO)); } catch (Exception e) { System.err.println(e); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
}
</source>
MIDIControl.NOTE_ON
<source lang="java">
import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Display; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.control.MIDIControl; import javax.microedition.midlet.MIDlet; public class MIDIEventsMIDlet extends MIDlet {
Display display = null; Alert alert = new Alert("Message"); public MIDIEventsMIDlet() { display = Display.getDisplay(this); alert.setString("Working..."); alert.setTimeout(Alert.FOREVER); } public void startApp() { display.setCurrent(alert); try { Player p = Manager.createPlayer(Manager.MIDI_DEVICE_LOCATOR); p.prefetch(); MIDIControl mControl = (MIDIControl) p .getControl("javax.microedition.media.control.MIDIControl"); if (mControl == null) throw new Exception("MIDIControl not available"); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 100); Thread.sleep(100); mControl.shortMidiEvent(192 | 11, 14, 0); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.CONTROL_CHANGE | 11, 7, 50); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 0); } catch (Exception e) { alert.setString(e.getMessage()); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
}
</source>
MIDIControl: shortMidiEvent(int arg0, int arg1, int arg2)
<source lang="java">
import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Display; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.control.MIDIControl; import javax.microedition.midlet.MIDlet; public class MIDIEventsMIDlet extends MIDlet {
Display display = null; Alert alert = new Alert("Message"); public MIDIEventsMIDlet() { display = Display.getDisplay(this); alert.setString("Working..."); alert.setTimeout(Alert.FOREVER); } public void startApp() { display.setCurrent(alert); try { Player p = Manager.createPlayer(Manager.MIDI_DEVICE_LOCATOR); p.prefetch(); MIDIControl mControl = (MIDIControl) p .getControl("javax.microedition.media.control.MIDIControl"); if (mControl == null) throw new Exception("MIDIControl not available"); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 100); Thread.sleep(100); mControl.shortMidiEvent(192 | 11, 14, 0); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.CONTROL_CHANGE | 11, 7, 50); Thread.sleep(100); mControl.shortMidiEvent(MIDIControl.NOTE_ON | 11, 60, 0); } catch (Exception e) { alert.setString(e.getMessage()); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
}
</source>