AssetManager am = getAssets(); //AssetManager am = getResources().getAssets(); AssetFileDescriptor afd = am.openFd("nxn.mp3"); FileDescriptor fd = afd.getFileDescriptor(); MediaPlayer mp2 = new MediaPlayer(); mp2.setAudioStreamType(AudioManager.STREAM_MUSIC); //mp2.setDataSource(fd, afd.getStartOffset(), afd.getLength()); mp2.setDataSource(fd); mp2.prepare();
上面的代码总是报错:java.io.IOException: setDataSourceFD failed.: status=0x80000000
但是将 mp2.setDataSource(fd); 换成 mp2.setDataSource(fd, afd.getStartOffset(), afd.getLength());就可以了,实在是想不明白,但是有人说这样可以,奇怪。