Wav файл arrayList. Почему эта линия не работает? Джава

У меня есть строковый массив, который просматривает этот список один за другим и должен воспроизводить файл wav.

В этой строке "AudioInputStream ais = AudioSystem.getAudioInputStream(music(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();

            }
    }   
}

1 ответ

Решение

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

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

чтобы:

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

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

Другие вопросы по тегам