Para poder reproducir sonidos en java, por ejemplo al presionar un boton, tendremos que agregar el siguiente método en alún lugar de nuestra clase:
- try {
- AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(nombreSonido).getAbsoluteFile());
- clip.open(audioInputStream);
- clip.start();
- }
- }
Luego dejamos que nuestro IDE arregle las importaciones necesarias
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.io.IOException;
- 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;
Y ya simplmente ejecutamos el método pasando como parámetro un String con la dirección de directorio del archivo (solo lo he probado con archivos "wav").
Como antes es preferible contar con nuestro archivo dentro "TuEquipo / MisDocumentos/ NetBeansProjects/ TuProyecto/ Tupaquete" que va a ser el String del parametro para que se pueda encontrar y ejecutar el archivo.
Y Por ejemplo al crear una ventana con un boton que reproduzca algun sonido en particular(en la web hay cientos de paginas que brindan sonidos libres de derechos de autor para que puedan ser utilizados por cualquier usuario), en mi caso es un sonido de un disparo... el código es el siguiente:
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.io.IOException;
- 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;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- public Sonido(){
- super("Pulse el boton");
- setSize(400,80);
- setLocationRelativeTo(null);
- add(boton1);
- boton1.addActionListener(this);
- setVisible(true);
- }
- new Sonido();
- }
- try {
- AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(nombreSonido).getAbsoluteFile());
- clip.open(audioInputStream);
- clip.start();
- }
- }
- @Override
- if(e.getSource() == boton1){
- ReproducirSonido("src/tiro.wav");
- }
- }
- }
El resultado visual es (no se llega a apreciar el momento de hacer click y escuchar el sonido, pero es asi)
Puedes escuchar y/o descargar el sonido que elegi puedes hacerlo en el siguiente en el enlace
Si el archivo es .mp3 no funciona, pero al convertirlo a wav funciona correctamente.
ResponderEliminarGracias por el aporte, me mucho sirvió para un proyecto. Saludos.
ResponderEliminarme sale error al reproducir sonido y el audio que tengo esta en formato .wav
ResponderEliminarya logre hacerlo, con JAVAFX tengo la version 11 de jdk, netbeans 12.0
ResponderEliminarfue necesario descargar la librería y configurarla... revisen este video https://www.youtube.com/watch?v=IdTc_ZIGlMg&t=191s
Funciona al 100%. Gracias por compartir sus conocimientos.👍🏻
ResponderEliminarsuper recontrarecomendadísimo gracias
ResponderEliminarSi ponen un audio .mp3 no podra reproducirlo tendran que poner uno .wav porque es un formato mejor que el .mp3
ResponderEliminar