2013-04-14 2 views
0

У меня есть строковый arraylist, который проходит через этот список один за другим и его предполагается играть в wav-файл.Wav file arrayList. Почему эта строка не работает? Java

В этой строке «AudioInputStream ais = AudioSystem.getAudioInputStream (музыка (x));» музыка не распознается, она заявляет, что «не может найти символ». Также (music.get (x)) не работает. Затем вся строка подчеркивается, что она неприменима. Что мне нужно сделать? Благодарю.

String trackName; 

    ArrayList<String> music = new ArrayList(); 
    music.add("c:\\01.wav"); 
    music.add("c:\\02.wav"); 
    music.add("c:\\03.wav"); 
    music.add("c:\\04.wav"); 

    byte[] buffer = new byte[4096]; 
    for(int x = 0; x < music.size(); x++){ 


     try{ 

      AudioInputStream ais = AudioSystem.getAudioInputStream(music(x)); 
      trackName = "The Current Track is " + music.get(x); 
      System.out.println(trackName); 
      AudioFormat format = ais.getFormat(); 
      SourceDataLine line = AudioSystem.getSourceDataLine(format); 
      line.open(format); 
      line.start(); 

     while (ais.available() > 0) { 

      int len = ais.read(buffer); 
      line.write(buffer, 0, len); 

      } 

     line.drain(); //wait for the buffer to empty before closing the line 
     line.close(); 

      } 
     catch (Exception e) { 

      e.printStackTrace(); 

      } 
    } 
} 
+2

'music (x)' не имеет смысла, поскольку 'music' является ArrayList, попробуйте' music.get (x) 'и/или использовать IDE ... – home

+0

как я могу использовать music.get (x) правильно в этой ситуации? В настоящий момент попытка этого делает всю линию красной. Как я сказал. – Rob

ответ

3

Попробуйте изменить строку:

AudioInputStream ais = AudioSystem.getAudioInputStream(music(x)); 

к:

AudioInputStream ais = AudioSystem.getAudioInputStream(new File(music.get(x))); 

AudioSystem не принимает строку в качестве параметра, чтобы получить входной поток аудио. Требуется либо InputStream, URL, либо File, что я продемонстрировал выше.