tutorial para jdk descargar java netbeans

para - Problemas de sonido en Java



oracle java (1)

Está trabajando en un lenguaje de programación orientado a objetos, así que aprovechemos eso y encapsulemos la administración del clip / audio en una clase simple ...

public class AudioPlayer { private Clip clip; public AudioPlayer(URL url) throws IOException, LineUnavailableException, UnsupportedAudioFileException { clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(url.openStream())); } public boolean isPlaying() { return clip != null && clip.isRunning(); } public void play() { if (clip != null && !clip.isRunning()) { clip.start(); } } public void stop() { if (clip != null && clip.isRunning()) { clip.stop(); } } public void dispose() { try { clip.close(); } finally { clip = null; } } }

Ahora, para usarlo, necesitas crear un campo de instancia de clase que te permita acceder al valor desde cualquier lugar dentro de la clase que quieras usar ...

private AudioPlayer bgmPlayer;

Luego, cuando lo necesite, cree una instancia de AudioPlayer y asígnela a esta variable

try { bgmPlayer = new AudioPlayer(getClass().getResource("/BGM.wav")); } catch (IOException | LineUnavailableException | UnsupportedAudioFileException ex) { ex.printStackTrace(); }

Ahora, cuando lo necesite, simplemente llame a bgmPlayer.play() o bgmPlayer.stop()

Tengo algunas preguntas sobre la reproducción de sonido en Java y espero que me puedan ayudar.
1. ¿Cómo puedo detener un sonido de reproducción con el botón "Parar"?
2. ¿Cómo puedo ralentizar (o tiempo de enfriamiento) un sonido?
3. Quiero crear un marco de opciones donde pueda ajustar el volumen y tener la opción de silencio, ¿cómo puedo hacer eso?
Este es mi código:

private void BGM() { try { File file = new File(AppPath + "//src//BGM.wav"); Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(file)); clip.start(); } catch (Exception e) { System.err.println(e.getMessage()); } }

Cualquier ayuda será muy apreciada, y, ¡Que tengas un buen día!