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, что я продемонстрировал выше.