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());就可以了,實在是想不明白,但是有人說這樣可以,奇怪。