Actualmente tengo un audio PCM en forma de una matriz de bytes. El formato está firmado 16 bit little endian. Me gustaría convertir esto a algún formato jugable en Android, preferiblemente la versión 3.2 o superior. ¿Alguien tiene sugerencias sobre cómo se puede hacer esto? Hice algunas investigaciones e intenté lo siguiente a continuación, pero ninguna tuvo éxito. Sería muy apreciado si alguien puede sugerir una mejor manera o indicar dónde me he equivocado.PCM Raw Bytes [] Para audio en Android
He intentado crear un AudioFormat con la configuración de audio correcta; sin embargo, Android no es compatible con la biblioteca javax.sound.sampled.
También he intentado escribir los datos de PCM en un archivo de onda, pero estoy teniendo problemas para obtener toda la información de cabecera wav necesaria.
También he intentado utilizar la clase AudioTrack ofrecida por Android, para reproducir los datos de PCM. Sin embargo, no puedo escuchar ningún sonido. Aquí está mi método:
public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);
} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}
Cualquier sugerencia sería apreciada.
actualizó mi respuesta –