当前位置: 首页 > 知识库问答 >
问题:

Java中的健全问题

艾自强
2023-03-14

我有一些关于在 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());
        }
    }  

任何帮助都将不胜感激,并祝你有美好的一天!

共有1个答案

方夜洛
2023-03-14

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

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;

然后,当您需要它时,您创建一个< code>AudioPlayer的实例,并将其赋给这个变量

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

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

 类似资料:
  • 在接收开发团队的软件构建(代码中的微小更改)时进行的完整性测试。理智测试的目的是确保所有缺陷都得到解决。这是一种回归测试,仅关注一些受影响的功能。 可以在两种情况下进行健全性测试:一种是在第二次增强的情况下,一种是在缺陷固定的情况下。它确保代码或函数中所做的更改不会对相关模块产生影响,因此无法应用。 进行健全性测试的过程 同样,冒烟测试测试人员不需要是一个单独的测试用例进行健全性测试。测试人员只需

  • 因此,我们创建了一个包含一些私有类成员的简单类,并自动为其生成getter。但getter实际上返回了对该成员的引用,从而获得了对私有成员的完全访问权。这样可以吗?下面是一个类的代码: 主要方法代码: 和输出: [字符串1,字符串2] [字符串1、字符串2、字符串3] 我已经将getter更改为这个: 但问题仍然是,如果不是为了安全,吸气剂的作用是什么?什么是正确的书写方式?

  • 我需要全局热键支持我的Java应用程序。 我想出了一些代码(大部分是复制的),但它不起作用。 HotkeyManager.java: 用户32。爪哇: msg. java: 它确实注册了热键(当程序运行时,按系统中的“F”键不会产生任何结果),但我从未得到任何到控制台的输出。发生了什么?我也知道jintellitype和jnativehook。我不能使用first,至于second,它总是监听所有

  • 问题内容: 我刚开始使用Java ScriptEngine对我的应用程序进行少量扩展,然后我注意到可以导入脚本中的所有Java类并不受限制地使用它们。有没有一种方法可以指定脚本可以使用的类?我不希望他们做类似的事情 问题答案: 好了,您似乎需要学习Java SecurityManager。这是一个很大的话题,如果您无法使它适合您,则可能需要阅读它,然后发布一个更具体的问题。

  • 我有一个对象队列集,该对象由 Java 中的并发跳过列表集创建 请注意,与大多数集合不同,size方法不是恒定时间操作。由于这些集合的异步性质,确定当前元素的数量需要遍历元素,因此如果在遍历过程中修改此集合,可能会报告不准确的结果。此外,批量操作addAll、removeAll、retainAll、capsAll、equals和toArray不能保证以原子方式执行。例如,与addAll操作同时操作

  • 如 mq,redis ,pgsql 检测健康状态的方式有哪些?检查能否连的上以及是否能正常使用 spring-boot-actuator好像可以实现,还有什么其它方式?