[英]How would i stop sound from playing? -Java
这是我用来播放声音的代码,非常适合我的需求。 我只是不知道如何在需要时停止播放剪辑。
public class Sound {
public Clip play(String filename) {
Clip clip = null;
try {
File file = new File(filename);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(file);
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.stop();
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
return clip;
}
}
如果您查看用于Clip
JavaDocs,则应注意,从DataLine
继承的方法之一是stop
停止生产线。 停止的线路应停止I / O活动。 但是,如果该生产线是开路并正在运行,则它应保留恢复活动所需的资源。 停止的行应将所有音频数据保留在其缓冲区中,而不是丢弃它,以便在恢复后,I / O可以从中断处继续进行。 (当然,这不能保证在当前缓冲区之外永远不会有不连续性;如果停止条件持续的时间过长,则可能会丢弃输入或输出样本。)如果需要,可以通过调用保留的数据来丢弃保留的数据。冲洗方法。 音频捕获或播放停止时,将生成STOP事件。
您可能需要验证这一点,但是我似乎理解start
是一种阻塞方法,即一旦调用,将在Clip
播放完毕之前不会返回。 这将要求Clip
在单独的Thread
启动
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.