Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Programa no reproduce archivo .wav : "could not get audio input stream from input file"

Buenas, estoy intentando hacer un programa para reproducir archivos .wav, pero no lo consigo. El código de mi programa es éste (no sé por qué pero parece que no se tabula):

import java.io.File;

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

public class Reproducir {


public static void main(String[] args) {
try {

Clip sonido = AudioSystem.getClip();

sonido.open(AudioSystem.getAudioInputStream(new File("another.wav")));

sonido.start();

while (sonido.isRunning())
Thread.sleep(1000);

sonido.close();

} catch (Exception e) {
System.out.println(e.getMessage());
}
}

}

Y la excepción que me salta:
could not get audio input stream from input file

Espero que me podáis ayudar, gracias de antemano y un saludo.

noviembre 23, 2013 | Registered Commenternathand

Buenas,

Si pusieras la excepción completa, podrías dar alguna pista. Quizás te pone algo como:
javax.sound.sampled.UnsupportedAudioFileException ???

Si es así, entonces seguramente es que no soporta el formato del fichero que estás intentando reproducir.


Un saludo

noviembre 23, 2013 | Unregistered CommenterUnoPorAhi

Buenas,

gracias por contestar. Había tocado el println del catch y no aparecía la excepción completa. Sí, es ésa. Pero lo raro es que no reproduzca el .wav, porque he hecho un programa para que mostrara los formatos soportados, y .wav era uno de esos (había otros dos que eran pocos comunes y no recuerdo)...

Si no hubiera solución a lo anterior, ¿hay algún formato que tenga un 100% de posibilidades de poder reproducirlo?

Gracias y saludos

noviembre 23, 2013 | Registered Commenternathand

Sigue los ejemplos de esta página, porque el JDK no tiene problemas para reproducir archivos en formato .wav sin librerías externas.

http://jsresources.org/examples/audio_playing_recording.html

noviembre 23, 2013 | Registered Commenterchoces

Buenas,

El formato wav es un formato "contenedor" que puede venir con muy diversos codecs:
http://en.wikipedia.org/wiki/WAV
http://en.wikipedia.org/wiki/Audio_file_format

Por tanto, aunque la extensión sea .wav el fichero puede venir codificado en mp3, vorbis, AAC, windows media....

La propia página de Oracle (http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/sound.html) te lo explica mejor que yo:

Java Sound supports a set of audio file formats, for example .au, .aif, and .wav. Most of the file formats are only containers and can contain audio data in various compressed audio formats. Java Sound file readers support some formats (uncompressed PCM, a-law, mu-law), but do not support ADPCM, mp3, and others.

Como te dice en la siguiente linea, es posible instalar plugins para que java te soporte más formatos. Por ejemplo, hay un plugin para mp3 en:
http://www.oracle.com/technetwork/java/javase/download-137625.html

Un saludo

noviembre 23, 2013 | Unregistered CommenterUnoPorAhi

Tengo que ejecutar un archivo audio, simple *.wav
pero me falla , error que me da es el siguiente:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file , el fichero esta correcto porque lo puedo ejecutar desde windows y suena bien, lo cogi del propio sistema *.wav. No le gusta esta linea

sonido.open(AudioSystem.getAudioInputStream(new File("C:/prueba.wav")));

La verdad es que no sé porque sucede, me podrian hechar un mano, que estoy un poco perdido.

noviembre 9, 2014 | Unregistered Commenterdwedari