晚上好,请有人告诉我如何在.jar中执行音频文件

我试图使用getClass()来调用它们。 GetResource(),但由于出现错误,我无法使用它。

这是我播放声音的实现:

public class Sonido extends Thread {

private Clip sonido;

private boolean seguir;

public Sonido(String rutaArchivo){
    try {

        sonido = AudioSystem.getClip();

        sonido.open(AudioSystem.getAudioInputStream(new File(rutaArchivo)));

    } catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex) {

        Logger.getLogger(PanelBotones.class.getName()).log(Level.SEVERE, null, ex);

    }

 }

@Override
@SuppressWarnings("SleepWhileInLoop")
public void run() {

    seguir = true;

    do {

        sonido.loop(0);

        try {

            Thread.sleep(1000);

        } catch (InterruptedException interruptedException) {

            Logger.getLogger(PanelBotones.class.getName()).log(Level.SEVERE, null,
                    interruptedException);

        }

    } while (seguir == true && sonido.isActive());

    // Se cierra el clip.
    sonido.close();

}

public void parar() {

    seguir = false;

   }

}

这是您创建新剪辑的事件方法
@Override
public void actionPerformed(ActionEvent e) {

    String cadena = e.getActionCommand();

    if (cadena.equalsIgnoreCase(ROJO)) {

        interfazPrincipal.imagenUno();

        sonido = new Sonido("./recursos/sonido/rojo.wav");

        Thread cancionFondo;

        cancionFondo = new Thread(sonido);

        cancionFondo.start();


    }

感谢您的帮助,谢谢。

最佳答案

尝试以下方法:sonido.open(AudioSystem.getAudioInputStream(Sonido.class.getClassLoader().getResource(rutaArchivo)));sonido = new Sonido("my/package/rojo.wav");

10-08 09:29