Android - Playing mp3 from RandomAccessFile (byte[])



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

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

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

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

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

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

最新更新