0

私はbyte[]にmp3を持っています(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 に答える