播放.Wav文件

时间:2014-05-15 03:35:48

标签: java wav

我正在使用

String comspec = System.getenv().get("ComSpec");

String fileToPlay = "/path/to/wav/file.wav";

Runtime.getRuntime().exec(comspec, new String[]{"/c", "start", fileToPlay}) ;

我继续收到错误我需要它只是播放.wav文件

2 个答案:

答案 0 :(得分:0)

尝试使用javax.sound api。

AudioSystem.getAudioInputStream(File file);

尝试在代码下运行,这对我有用。

  AudioInputStream s;
        AudioFormat f;
        DataLine.Info i;
        File inputFile;
        Clip c;

        s = AudioSystem.getAudioInputStream(inputFile);
        f = s.getFormat();
        i = new DataLine.Info(Clip.class, f);
        c = (Clip) AudioSystem.getLine(i);
        c.open(s);
        c.start();

答案 1 :(得分:0)

以下是仅播放,循环和暂停.wav文件的AudioPlayer类的代码:

class AudioPlayer implements Runnable
{
    AudioInputStream input;
    Clip clip;
    private boolean running;

    public AudioPlayer(String path)
    {
        running = true;
        try
        {
            clip = AudioSystem.getClip();
            input = AudioSystem.getAudioInputStream(new File(path));
            clip.open(input);
        }
        catch (UnsupportedAudioFileException | IOException | LineUnavailableException e)
        {
            System.out.println(e);
        }
    }    
    public void play()
    {        
        clip.loop(1);
        running = true;
    }
    public void stop()
    {
        running = false;
        clip.stop();        
    }
    public void loop()
    {
        running = true;        
        new Thread(this).start();
    }
    public void suspend()
    {
        running = false;
    }
    @Override
    public void run()
    {
        try
        {
            Thread.sleep(2);
        }
        catch(InterruptedException e)
        {

        }
        while(running)
        {
            clip.loop(1);
        }
    }
}

将音频播放为新线程的对象始终是理想的,因此您可以轻松播放,暂停它们。

javax.sound API,尤其是Clip类,具有非常有用的方法,您可以使用它们实现各种声音系统。一定要看一下!

如果您还有其他问题,请在此帖子上发表评论。