通过Clip和AudioInputStream播放Java声音不起作用

通过Clip和AudioInputStream播放Java声音不起作用,java,ubuntu,wav,javasound,Java,Ubuntu,Wav,Javasound,这是Java声音信息页面中的一个稍加修改的示例。不幸的是,它只播放一次声音,但意图是两次 import java.io.File; import javax.sound.sampled.*; public class TestNoise { public static void main(String[] args) throws Exception { File f = new File("/home/brian/drip.wav"); AudioIn

这是Java声音信息页面中的一个稍加修改的示例。不幸的是,它只播放一次声音,但意图是两次

import java.io.File;
import javax.sound.sampled.*;

public class TestNoise {
    public static void main(String[] args) throws Exception {
        File f = new File("/home/brian/drip.wav");
        AudioInputStream ais = AudioSystem.getAudioInputStream(f);

        AudioFormat af = ais.getFormat();
        DataLine.Info info = new DataLine.Info(Clip.class, af);
        Clip clip = (Clip)AudioSystem.getLine(info);

        clip.open(ais);
        clip.start();    // heard this
        Java.killTime(); 
        clip.start();    // NOT HEARD
        Java.killTime();
    }
}

编辑:要理解答案,请查看Wanderlust提供的链接,或者按照其答案下方评论中的内容进行操作。

第二次播放该剪辑时,您必须致电

clip.start();
clip.stop();

第二次调用clip.start()后的原因;它试图从播放WAV的位置播放文件。

1)中显示的播放WAV的确切来源是否适合您?2) 您的测试WAV的确切来源(URL更改除外)失败了吗?为了更快地获得更好的帮助,请发布一条消息。@broiyan:如果您打算删除您的Swing验证问题,为什么我要浪费空闲时间来处理它?正式注明,以备将来参考。谢谢。它需要一个剪辑。setFramePosition(0);使其正确重播。