如何在 Java GUI 游戏中使用已弃用的音频 API 来解决问题
Posted
技术标签:
【中文标题】如何在 Java GUI 游戏中使用已弃用的音频 API 来解决问题【英文标题】:How to get past using Deprecated API for audio in Java GUI game 【发布时间】:2021-04-21 21:34:36 【问题描述】:所以我正在编写一个 Java 游戏,我想在达到某个点时添加声音效果。我在与 Java 文件本身相同的目录中的 .wav 文件中有音效。
我使用了这个问题的答案之一:Best way to get Sound on Button Press for a Java Calculator? 来播放音频 - 它完全没问题(所以我的代码可以工作)。但是,问题是我的编译器说我正在使用或覆盖已弃用的 API,我不确定我是否希望它发生。
以下是相关代码(有效,但使用了已弃用的 API):
String soundName = "NoGodNo.wav";
URL soundbyte = new File(soundName).toURI().toURL();
java.applet.AudioClip clip = java.applet.Applet.newAudioClip(soundbyte);
clip.play();
我做了一些研究,发现 AudioClip 已被弃用:https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/applet/AudioClip.html,根据此链接它没有替代品。
有没有办法通过完全替换代码来绕过已弃用的 API 消息? (因为 AudioClip 没有替代品)。
提前致谢!
【问题讨论】:
【参考方案1】:没关系,我明白了。以下是不使用已弃用 API 的答案:
try
String soundName = "theme_audio.wav";
AudioInputStream audioInputStream = Audiosystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
catch (Exception e)
谢谢!
【讨论】:
为了一切圣洁的爱,请不要catch (IOException i)
@HovercraftFullOfEels 抱歉,我只是想看看如何在没有它的情况下消除编译器所产生的错误。事实上,我确实找到了一个更好的解决方案,我已经在上面编辑了我的答案。以上是关于如何在 Java GUI 游戏中使用已弃用的音频 API 来解决问题的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS7 中,我应该使用啥来代替已弃用的 GKLeaderboardViewController?