如何用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();
请参阅Applet
和AudioClip
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); } }