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