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

时间:2015-06-02 04:37:28

标签: java audio

我现在正在大肆宣传几个小时,现在正在寻找可以用Java编写简单wav文件的示例代码。但是,我收到的所有人都没有为我工作。也许只是我不了解如何操作示例代码,但任何人都可以向我提供示例代码和"指令"如何让它正常工作。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

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

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);

答案 1 :(得分:0)

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

import java.applet.Applet;
import java.applet.AudioClip;

final AudioClip clip = Applet.newAudioClip(resourceUrl);

播放一次:

clip.play();

循环:

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

请参阅AppletAudioClip

的Javadoc
  

<强> getAudioClip

public AudioClip getAudioClip(URL url)
     

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

     

参数:

     

url - 提供音频剪辑位置的绝对网址。

     

返回:

     

指定网址的音频剪辑。

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

答案 2 :(得分:0)

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);
    }
}