Android - 从RandomAccessFile播放mp3(byte [])

时间:2012-06-12 18:23:59

标签: android mp3 media-player

我在mp3 []中有我的mp3(从RandomAccessFile读取):

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

我想在我的设备上播放它,我该怎么办? 有帮助吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

恕我直言,你不能。但是,您可以将FileDescriptor传递给播放器,而不是从文件中读取它。这将播放从字节位置300开始并且长度为10000字节的mp3:

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

我认为你在读取调用中也有一个错误,因为这将从文件开头读取10300个字节并将其放入从300开始的数据。含义:在数据中你将有300个字节未设置(垃圾) ,然后是你文件的第一个9700字节(其余的不适合缓冲区)