在开发中用mediaplayer播放一个wav文件,报了java.io.IOException: setDataSourceFD failed.: status=0x80000000,经检查文件在电脑上可以播放,没有问题,最后在网上找到一个解决方法,但是也不知道原理。
原来的代码是
AssetFileDescriptor fileDescriptor = getAssets().openFd(mPlayFileName);
mPlayer.setDataSource(fileDescriptor.getFileDescriptor());
改成
AssetFileDescriptor fileDescriptor = getAssets().openFd(mPlayFileName);
mPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
我把声音文件换成一个mp3后用之前的代码就能正常播放,但是用wav文件就不行,不过并没有对更多文件进行测试。在播放wav文件时用改过的代码就可以播放。