Я пытаюсь создать программу, которая может воспроизводить ноты на MIDI-клавиатуре. Я не мог заставить всю программу работать, но теперь я пытаюсь создать меньшее доказательство концептуальной программы, чтобы попытаться ее решить.Java Sound Midi Выход на аппаратную клавиатуру
Для этого я пытаюсь воспроизвести файл .mid на клавиатуре (A Casio CTK-3000), MidiPlay может играть на клавиатуре. Проблема в том, что когда я пытаюсь играть на клавиатуре в своей программе, она просто ничего не играет. Мой код ниже:
public class midiOut {
public static void main(String[] args) throws IOException, MidiUnavailableException, InvalidMidiDataException
{
while(true) {
//List Midi Devices
MidiDevice.Info[] midiInfo = MidiSystem.getMidiDeviceInfo();
int i = 0;
for (MidiDevice.Info info : midiInfo) {
System.out.println(i + ": " +info.getName());
i+=1;
}
//Select Device
Scanner in = new Scanner(System.in);
int input = in.nextInt();
if(input == -1)
{
break;
}
//Get Device and Open it
MidiDevice selectedDevice = MidiSystem.getMidiDevice(midiInfo[input]);
System.out.println(selectedDevice.getDeviceInfo().getName());
selectedDevice.open();
//Get Sequencer and Receiver, load the File and start playing
Receiver receiver = selectedDevice.getReceiver();
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.getTransmitter().setReceiver(receiver);
sequencer.open();
sequencer.setSequence(MidiSystem.getSequence(new File("C:\\Users\\Harris Mirza\\Downloads\\PennyLane.mid")));
sequencer.start();
selectedDevice.close();
}
}
}
Как ни странно, когда я делаю это также играет через Колонки для ПК. – olafgarten