Sonido en un Jframe
Me ha pegado la curiosidad de aprender como ponerle un sonido de fondo a una aplicación. pero realmente no se ni de donde empezar . no se hacer eso. ¿No saben de algún blog o algo con lo que pueda aprender? es que los que he encontrado son un poco confusos. ya manejo hilos creo que con esos se puede pero no me quedo muy en claro.
- Inicie sesión o regístrese para enviar comentarios
Puedes revisar el tutorial
Puedes revisar el tutorial referente a sonido en Java
https://docs.oracle.com/javase/tutorial/sound/index.html
Y buscar sobre la interfaz MIDI
gracias
Ahora solo queda traducir e investigar
Archivo WAV
Utiliza la clase
java.applet.AudioClip
. No requiere librerías externas. Si tienes un archivo WAV en tu proyecto, puedes cargarlo así:Para esta línea en particular, el archivo
sound.wav
está ubicado en el paquete por defecto (sin paquete de Java). Puedes reproducir el sonido una vez o continuamente. Echa un vistazo a los métodos de la clase mencionada anteriormente. No es necesario crear otro hilo.He aquí un pequeño ejemplo:
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class Main {
public static void main(String[] args) throws MalformedURLException {
AudioClip clip = Applet.newAudioClip(new URL("http://www.wavlist.com/soundfx/011/duck-quack1.wav"));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
frame.add(new JButton(new AbstractAction("Sound") {
@Override
public void actionPerformed(ActionEvent e) {
clip.loop();
}
}));
frame.add(new JButton(new AbstractAction("No Sound") {
@Override
public void actionPerformed(ActionEvent e) {
clip.stop();
}
}));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
~~~
y puedo bien
Tomar un sonido metido en un paquete?
Es que quiero que mi app reproduzca un sonido diferente dependiendo de una opción tomada. O tengo que llamarlos externamente desde una carpeta
Tiene que ser un sonido .wav?
O puede ser un .mp3
URL & WAV
Puede ser un archivo local o remoto. No importa. Sólo necesitas la URL del archivo. Seguro querrás ver Pass a local file in to URL in Java.
Sólo soporta:
wav
au
aif
Si deseas reproducir
mp3
, necesitarás una librería externa o JavaFX (incluido desde Java 8). También puedes convertir tu archivo a WAV utilizando algún software (o tal vez quieras probar Convert audio to WAV).~~~
Mas o menos asi?
AudioClip clip;
File Url=new File("/Sonido/Sonido.wav");
clip= Applet.newAudioClip(Url.toURI().toURL());
clip.loop();
}catch(Exception ex){
System.err.println(ex+" error");
}