Java中的声音问题

我有一些关于在Java中播放声音的问题,我希望你能帮助我。
1.如何使用“停止”按钮停止播放声音?
2.我怎样才能减慢(或冷却时间)声音?
3.我想创建一个选项框架,我可以调整音量和静音选项,我该怎么做?
这是我的代码:

private void BGM() { try { File file = new File(AppPath + "\\src\\BGM.wav"); Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(file)); clip.start(); } catch (Exception e) { System.err.println(e.getMessage()); } } 

任何帮助将不胜感激,并祝你有愉快的一天!

您正在使用面向对象的编程语言,所以让我们利用它并将剪辑/音频的管理封装到一个简单的类中……

 public class AudioPlayer { private Clip clip; public AudioPlayer(URL url) throws IOException, LineUnavailableException, UnsupportedAudioFileException { clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(url.openStream())); } public boolean isPlaying() { return clip != null && clip.isRunning(); } public void play() { if (clip != null && !clip.isRunning()) { clip.start(); } } public void stop() { if (clip != null && clip.isRunning()) { clip.stop(); } } public void dispose() { try { clip.close(); } finally { clip = null; } } } 

现在,要使用它,您需要创建一个类实例字段,它允许您从要使用它的类中的任何位置访问该值…

 private AudioPlayer bgmPlayer; 

然后,当您需要它时,您创建一个AudioPlayer实例并将其分配给此变量

 try { bgmPlayer = new AudioPlayer(getClass().getResource("/BGM.wav")); } catch (IOException | LineUnavailableException | UnsupportedAudioFileException ex) { ex.printStackTrace(); } 

现在,当你需要时,你只需要调用bgmPlayer.play()bgmPlayer.stop()