如何用Java(循环)播放.wav文件?

我现在正在大肆宣传几个小时,现在正在寻找可以在Java中播放简单wav文件的示例代码。 但是,我收到的所有人都没有为我工作。 也许只是我不了解如何操作示例代码,但是任何人都可以向我提供示例代码和关于如何使其正常工作的“说明”。 任何帮助将非常感激。

此代码将创建一个剪辑并在启动后连续播放:

import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(new URL(filename))); clip.start(); clip.loop(Clip.LOOP_CONTINUOUSLY); 

有更多现代方法可以做到这一点,但applet类AudioClip可能满足您的需求:

 import java.applet.Applet; import java.applet.AudioClip; final AudioClip clip = Applet.newAudioClip(resourceUrl); 

要播放一次:

 clip.play(); 

循环:

 clip.loop(); clip.stop(); 

请参阅AppletAudioClip Javadocs

getAudioClip

 public AudioClip getAudioClip(URL url) 

返回URL参数指定的AudioClip对象。 无论音频片段是否存在,此方法始终立即返回。 当此applet尝试播放音频剪辑时,将加载数据。

参数:

url – 提供音频剪辑位置的绝对URL。

返回:

指定URL处的音频剪辑。

您不需要实际使用applet执行任何操作。 它可以在常规Java应用程序中正常工作。

 import java.io.File; import javax.sound.sampled.*; public void play(File file) { try { final Clip clip = (Clip)AudioSystem.getLine(new Line.Info(Clip.class)); clip.addLineListener(new LineListener() { @Override public void update(LineEvent event) { if (event.getType() == LineEvent.Type.STOP) clip.close(); } }); clip.open(AudioSystem.getAudioInputStream(file)); clip.start(); } catch (Exception exc) { exc.printStackTrace(System.out); } }