如何播放音效?

问题描述 投票:0回答:1

我目前正在用 Java 制作一个游戏,需要在玩家受到伤害时播放声音,每次运行测试代码时都会出现错误“音频线路不可用”。我很确定 .wav 文件的路径是正确的。

这是我的代码(这个类只是为了运行一些带有声音的测试,这样我就不会破坏我的主程序)

    package interfaces;
    import java.io.IOException; 
    
    import javax.sound.sampled.*;
    
    public class TestSound {
            public static void main(String[] args) {
                Clip clip = null;
            
                try {
                    // Loads the sound file from the assets folder
                    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(
                        TestSound.class.getResourceAsStream("/assets/damageSound.wav"));
    
                    // Get a sound clip resource
                    clip = AudioSystem.getClip();
                    clip.open(audioInputStream);
                    clip.start();
                    Thread.sleep(2000);
                 
                } catch (UnsupportedAudioFileException e) {
                    System.out.println("Unsupported audio file format.");
                } catch (IOException e) {
                    System.out.println("IO error occurred while loading audio.");
                } catch (LineUnavailableException e) {
                    System.out.println("Audio line unavailable");
                } catch (InterruptedException e) {
                    System.out.println("Thread interrupted");
                } finally {
                    if (clip != null) {
                        clip.drain();
                        clip.close();
                    }
            }
        }
    }
java eclipse audio
1个回答
0
投票

不要使用

javax.sound
包。还有其他库,例如 JLayer。 你可以用 Jlayer 来做到这一点:

import javazoom.jl.player.Player;

import java.io.FileInputStream;

public class Sounds {

    public static void do1() {
        try {
            FileInputStream inputs = new FileInputStream("E:/sound.mp3");
            Player mp3 = new Player(inputs);
            mp3.play();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

执行方法

do1()
来播放声音。

© www.soinside.com 2019 - 2024. All rights reserved.