Android - Reproducción de mp3 desde RandomAccessFile (byte[])

Tengo mi mp3 en byte[] (leer de RandomAccessFile):

RandomAccessFile raf=new RandomAccessFile("sdcard\myfile.mf", "r" );;
byte[] data = new byte[10000];
raf.read(data, 300, 10300);

y me gustaría reproducirlo en mi dispositivo, ¿cómo puedo hacerlo? ¿Alguna ayuda? ¡Gracias!

preguntado el 12 de junio de 12 a las 19:06

1 Respuestas

En mi humilde opinión no se puede. Pero en lugar de leerlo desde el archivo, puede pasar el FileDescriptor al reproductor. Esto reproducirá el mp3 que comienza en la posición de byte 300 y tiene una longitud de 10000 bytes:

RandomAccessFile raf=new RandomAccessFile("sdcard\myfile.mf", "r" );
MediaPlayer player = new MediaPlayer();
player.setDataSource(raf.getFD(), 300, 10000);
player.prepare();
player.start();

Creo que también tiene un error en la llamada de lectura, porque esto leería 10300 bytes desde el comienzo del archivo y lo colocaría en datos a partir de 300. Significado: en datos tendrá 300 bytes sin configurar (basura), luego el primeros 9700 bytes de su archivo (el resto no cabe en el búfer)

respondido 22 mar '13, 13:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.