0

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

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

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

4

1 回答 1

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();

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

于 2013-03-22T13:03:04.583 回答