android 使用mediaplayer播放报java.io.IOException: setDataSourceFD failed.: status=0x80000000的问题

在开发中用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文件时用改过的代码就可以播放。

你可能感兴趣的:(android)