java - 在.jar上运行音频文件

标签 java audio jar

晚上好,请有人告诉我如何在.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");

关于java - 在.jar上运行音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094030/

相关文章:

java - Ant : jar and zipfileset - copy files from one JAR into another

Java - Tapestry - html 不解释数据库中的 <br>

audio - flac 编解码器,2 个文件,持续时间相同,但内存大小不同

android - 如何在Android.Equalizer中获取音频文件的频段级别

java - 可执行 jar 方法

java - 从现有 jar 创建 maven 工件的最佳方法

java - [Java]通过控制台使用 jar 文件输出不正确

java - Scanner.nextLine() 实际上并没有给出下一行

java - 开箱即用的 Hibernate 集合 validator 注释

audio - Go 中的信号处理