配列の数字を読み取って、画像と音を出す(60だった場合、カタカナのドの画像とドの音を同時に出す)のを連続して行うコードを書きたいです。
配列の数字の通りにmidiで音を出すところまではうまくいったのですが、同時に対応する画像を表示させる方法が分かりません。また0の場合は、一個前の画像のままになるようにしたいです。
知恵を貸してください。
Java
1import java.io.BufferedReader; 2import java.io.InputStreamReader; 3 4import javax.sound.midi.MidiSystem; 5import javax.sound.midi.Receiver; 6import javax.sound.midi.ShortMessage; 7 8class sampleImage { 9 public static void main(String[] args) throws Exception { 10 int[] notenums = {60,0,62,0,64}; 11 Receiver receiver = MidiSystem.getReceiver(); 12 ShortMessage message = new ShortMessage(); 13 14 //音色の変更 15 message.setMessage(ShortMessage.PROGRAM_CHANGE, 73, 0); 16 receiver.send(message, -1); 17 18 for(int i:notenums) { 19 if(i == 0) { 20 Thread.sleep(300); 21 }else { 22 //ノートナンバーiの音を出す 23 message.setMessage(ShortMessage.NOTE_ON, i, 127); 24 receiver.send(message, -1); 25 Thread.sleep(300); 26 } 27 28 //次の音に行く前に現在の音を止める 29 message.setMessage(ShortMessage.NOTE_OFF,i,127); 30 receiver.send(message, -1); 31 } 32 33 System.out.println("Enter キーを押してプログラムを終了します>"); 34 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 35 reader.readLine(); 36 37 } 38}
回答1件
あなたの回答
tips
プレビュー