2009-07-21 10 views
9

Tengo muestras de PCM en una matriz corta. ¿Cuál es la mejor manera de jugar esto? El formato es 8000Hz, Mono, 16 bit, big endian. (Las muestras PCM se generan en el código y no leer a través de algún archivo)cómo jugar datos raw pcm en java

Gracias

Respuesta

4

Con el paquete javax.sound.sampled Es bastante sencillo, pero hay que usar un poco repetitivo.

Aquí hay un buen tutorial sobre eso: www.wikijava.org/wiki/Play_a_wave_sound_in_Java

Básicamente, usted tiene que crear una InputStream de su módulo y usarlo para crear un AudioInputStream. Allí tienes que especificar el formato de tus datos de audio.

A continuación, abre una secuencia de salida (SourceDataLine) y copia los bytes de la secuencia de audio en esa secuencia.

+0

Gracias por la sugerencia. Probé este método pero no pude reproducir los datos de pcm correctamente, solo pude escuchar el ruido. Probablemente algún problema de configuración con AudioFormat. Pero encontré una alternativa: descargué los datos de pcm en un comando FileOutputStream (/tmp/x.wav)and exec'd aplay (utilidad alsa en Linux) para reproducir /tmp/x.wav. – Geos