2015-05-08 1 views
0

Я хочу постоянно воспроизводить WAV-файл в Java. Я нашел код, но я не могу заставить его работать.Воспроизведение .wav непрерывно в java: Неверный формат Исключение

String fileName = "res/sound/buz.wav"; 
File file = new File(fileName); 
AudioInputStream ais; 
try { 
    Clip clip = AudioSystem.getClip(); 
    ais = AudioSystem.getAudioInputStream(file); 
    clip.open(ais); 
    clip.loop(Clip.LOOP_CONTINUOUSLY); 

} catch (UnsupportedAudioFileException | IOException 
     | LineUnavailableException e) { 
    e.printStackTrace(); 
} 

я получаю неверный формат Exception на clip.open (САИ):

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142) 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99) 
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283) 
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402) 
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453) 
    at launcher.Launcher.main(Launcher.java:59) 

Я проверил и файл создан правильно и существует. Итак, в чем проблема с моим кодом?

Если это имеет значение, я работаю на Linux, но это должно работать как на Linux и Windows ...

+0

http://stackoverflow.com/questions/2416935/how-to-play-wav-files-with-java - полный пример - см. Принятый ответ – MaVRoSCy

+0

Не должно '' '' 'быть' '||' «? – moffeltje

+0

И можете ли вы добавить в код команду, какая строка 59? – moffeltje

ответ

1

Так что я нашел решение

try{ 
     File file = new File (fileName); 
     AudioClip clip = Applet.newAudioClip(file.toURL()); 
     clip.loop(); 
     clip.stop(); 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 

Я могу играть .wav файл в петле и остановить ее. Это то, чего я хотел. И код очень короткий.