簡體   English   中英

我如何將Midi消息發送到特定的Midi端口

[英]How can i send a Midi Message to a specific Midi Port

我想將Note_On消息發送到名為LoopBe( 鏈接到站點 )的虛擬Midi接口。 如何獲取Receiver對象(Java)? 我嘗試了下面的代碼,但是在rcvr.send()上得到了NullPointerException。

public class test {

public static Receiver rcvr;

public static void main(String[] args) throws InvalidMidiDataException, MidiUnavailableException {
    String scene = "Test";
    getReceiver();
    ShortMessage myMsg = new ShortMessage();
    // Nachricht Channel Note Lautstärke
    myMsg.setMessage(ShortMessage.NOTE_ON, 0, 1, 127);
    rcvr.send(myMsg, -1);
    System.out.println("Szene " + scene + " ausgelöst");
}

public static void getReceiver() throws MidiUnavailableException {
    MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
    for(Info devices : infos )
    {
        System.out.println(devices.getName() + " : " + devices.getDescription());
        if(devices.getName() == "LoopBe Internal MIDI" && devices.getDescription() == "No details available") {
            MidiDevice device = MidiSystem.getMidiDevice(devices); 
            rcvr =  device.getReceiver();
            System.out.println("Receiver: " + rcvr.toString());
        }
    }
  }
}

我嘗試了rcvr = MidiSystem.getReceiver()並起作用,但是它將消息發送到com.sun.media.sound.MidiOutDevice$MidiOutReceiver@404b9385。

您應該在使用設備之前先打開設備。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM