problema al reproducir sonidos en java
Publicado por Maproce (6 intervenciones) el 26/08/2008 04:36:31
Tengo muchos problemas para poder implementar un sonido el java, e navegado e leido informacion y sigo estancado en lo mismo, el problema es que o no se reproduce el sonido, o solo se escucha un instante y termina el programa, aqui os dejo el codigo:
En este curiosamente si lo ejecuto en modo debug con breakspoints si se escucha pero sino no se escucha nada:
package Matrix;
import java.io.File;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import sun.java2d.pipe.LoopPipe;
/**
* Ejemplo de reproducción de ficheros de sonido.
* @author chuidiang
* http://www.chuidiang.com
*/
public class ReproduceAudio extends Thread {
/**
* Abre un fichero de sonido wav y lo reproduce
* @param args
*/
public static void main(String[] args) {
try {
// Se obtiene un Clip de sonido
Clip sonido = AudioSystem.getClip();
// Se carga con un fichero wav
sonido.open(AudioSystem.getAudioInputStream(new File("moonseed.wav")));
// Comienza la reproducción
sonido.start();
// Espera mientras se esté reproduciendo.
while (sonido.isRunning()){
for(long i=0;i<=1000000000;i++){
}
sleep(250);
}
// Se cierra el clip.
sonido.close();
} catch (Exception e) {
System.out.println("" + e);
}
}
}
Y en este otro se escucha un instante y termina el programa:
package Matrix;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;
public class sound extends JFrame {
public sound() {
File sf = new File("moonseed.wav");
AudioFileFormat aff;
AudioInputStream ais;
try {
aff = AudioSystem.getAudioFileFormat(sf);
ais = AudioSystem.getAudioInputStream(sf);
AudioFormat af = aff.getFormat();
DataLine.Info info = new DataLine.Info(
Clip.class,
ais.getFormat(),
((int) ais.getFrameLength() *
af.getFrameSize()));
Clip ol = (Clip) AudioSystem.getLine(info);
ol.open(ais);
ol.loop(Clip.LOOP_CONTINUOUSLY);
while (ol.isRunning()){
for(long i=0;i<=1000000000;i++){
}
}
System.out.println("reproducion empezada, apretar CTRL-C para interrumpir");
}
catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (LineUnavailableException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new sound();
}
}
Por favor indicarme que ocurre, conque me digais como echar a andar alguno de los dos me vale (me voi a volver loco con esto XD) , Gracias.
En este curiosamente si lo ejecuto en modo debug con breakspoints si se escucha pero sino no se escucha nada:
package Matrix;
import java.io.File;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import sun.java2d.pipe.LoopPipe;
/**
* Ejemplo de reproducción de ficheros de sonido.
* @author chuidiang
* http://www.chuidiang.com
*/
public class ReproduceAudio extends Thread {
/**
* Abre un fichero de sonido wav y lo reproduce
* @param args
*/
public static void main(String[] args) {
try {
// Se obtiene un Clip de sonido
Clip sonido = AudioSystem.getClip();
// Se carga con un fichero wav
sonido.open(AudioSystem.getAudioInputStream(new File("moonseed.wav")));
// Comienza la reproducción
sonido.start();
// Espera mientras se esté reproduciendo.
while (sonido.isRunning()){
for(long i=0;i<=1000000000;i++){
}
sleep(250);
}
// Se cierra el clip.
sonido.close();
} catch (Exception e) {
System.out.println("" + e);
}
}
}
Y en este otro se escucha un instante y termina el programa:
package Matrix;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;
public class sound extends JFrame {
public sound() {
File sf = new File("moonseed.wav");
AudioFileFormat aff;
AudioInputStream ais;
try {
aff = AudioSystem.getAudioFileFormat(sf);
ais = AudioSystem.getAudioInputStream(sf);
AudioFormat af = aff.getFormat();
DataLine.Info info = new DataLine.Info(
Clip.class,
ais.getFormat(),
((int) ais.getFrameLength() *
af.getFrameSize()));
Clip ol = (Clip) AudioSystem.getLine(info);
ol.open(ais);
ol.loop(Clip.LOOP_CONTINUOUSLY);
while (ol.isRunning()){
for(long i=0;i<=1000000000;i++){
}
}
System.out.println("reproducion empezada, apretar CTRL-C para interrumpir");
}
catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (LineUnavailableException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new sound();
}
}
Por favor indicarme que ocurre, conque me digais como echar a andar alguno de los dos me vale (me voi a volver loco con esto XD) , Gracias.
Valora esta pregunta


0