相关疑难解决方法(0)

使用javax.sound.sampled.Clip在游戏中播放,循环和停止多个声音.意外错误

我正试图在游戏中同时播放两个wav声音(背景音乐和效果).我首先使用java中的另一个音频处理程序构建了这段代码,它将处理声音的播放,停止和循环.此构造将播放背景音乐或效果,但一次只能播放一个.我环顾互联网并被告知使用javax.sound.sampled.Clip处理声音,因此重复使用相同的构造(播放,停止,循环),但将其切换为使用javax.sound.sampled.Clip.现在我完全迷失了.从我到目前为止所读到的,我已经完成了所有正确的操作并且在eclipse编辑器中没有出现任何错误,但是当我运行它时,我得到了两个错误之一.在eclipse(在Linux上运行)中抛出LineUnavailableException.在eclipse(在Windows 7上运行)中,我在此代码的loop()部分中获得了java.lang.NullPointerException.如果你能告诉我我做错了什么或者给我一些相关文档,我会很感激.我假设我的代码处理异常,但我不确定.如果你看到任何其他可怕的代码失误,请让我知道我正在努力成为最好的程序员,我真的很感激建设性的批评.感谢您的时间.

    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.Clip;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.UnsupportedAudioFileException;

    /**
     * Handles play, pause, and looping of sounds for the game.
     * @author Tyler Thomas
     *
     */
    public class Sound {
        private Clip myClip;
        public Sound(String fileName) {
                try {
                    File file = new File(fileName);
                    if (file.exists()) {
                        Clip myClip = AudioSystem.getClip();
                        AudioInputStream ais = AudioSystem.getAudioInputStream(file.toURI().toURL());
                        myClip.open(ais);
                    }
                    else {
                        throw new RuntimeException("Sound: file not found: " + fileName);
                    }
                } …
Run Code Online (Sandbox Code Playgroud)

java audio exception game-development

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

audio ×1

exception ×1

game-development ×1

java ×1