2015-02-13 3 views
0
import javax.sound.midi.*; 


public class MiniMiniMusicApp 
{ 
    public static void main(String[] args) 
    { 
     MiniMiniMusicApp mini = new MiniMiniMusicApp(); 
     mini.play(); 
    }//close main 

    public void play() 
    { 
     try 
     { 
      Sequencer player = new MidiSystem.getSequencer(); 
      player.open(); 

      Sequence seq = new Sequence(Sequence.PPQ, 4); 

      Track track = seq.createTrack(); 

      ShortMessage a = new ShortMessage(); 
      a.setMessage(144, 1, 44, 100); 
      MidiEvent noteOn = new MidiEvent(a,1); 
      track.add(noteOn); 

      ShortMessage b = new ShortMessage(); 
      b.setMessage(128, 1, 44, 100); 
      MidiEvent noteOff = new MidiEvent(b, 16); 
      track.add(noteOff); 

      player.setSequence(seq); 

      player.start(); 
     }catch(Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
    }//close play 
}//close class 

У меня есть версия 1.8. Когда я пытаюсь скомпилировать это, я получаю ошибку «не могу найти символ» из строки MidiSystem.getSequencer(). Я знаю, что это там, потому что я просто проверил онлайн-API, и у меня есть последняя версия. Я не уверен, что я делаю неправильно здесь.Ошибка MidiSystem.getSequencer() при компиляции - символ не найден

+0

вещь, после того, как 'new' должен быть классом. 'MidiSystem.getSequencer' не является классом. – immibis

+0

и теперь он компилируется. Я знал, что это что-то маленькое, что я не замечал. Большое спасибо – James

ответ

0
Sequencer player = new MidiSystem.getSequencer(); 

из приведенной выше строки удалить new ключевое слово, Он используется для создания нового объекта из класса. И я считаю, MidiSystem.getSequencer() возвращает объект Sequecer

поэтому он должен быть

Sequencer player = MidiSystem.getSequencer(); 
+0

. Я отмечу это как ответ как можно скорее – James

Смежные вопросы