MediaPlayer为wav文件抛出IOException

时间:2014-11-06 20:42:47

标签: android audio android-mediaplayer

我在Android上有一个录音应用程序,我在朋友的手机上遇到了一个奇怪的问题。

其中一个录音不起作用并抛出:

E/MediaPlayer-JNI(5996): QCMediaPlayer mediaplayer NOT present
E/MediaPlayer(5996): Unable to create media player
E/com.audioRec.player.MediaPlayer(5996): setDataSourceFD failed.: status=0x80000000
E/com.audioRec.player.MediaPlayer(5996): java.io.IOException: setDataSourceFD failed.: status=0x80000000

但它在Windows媒体播放器,vlc播放器等方面取得了成功!!!!!!!!!

Could someone take a look over the header of the "RecordingNotOk.wav" file?

Here are both recordings

1 个答案:

答案 0 :(得分:1)

对于RecordingNotOk.wav文件,听起来像数据块的指定大小大于文件大小: 小端的00 F8 0A 00是718848字节,而整个文件大小只有716844,这个块的实际可用数据大小只有716800

这个数字可以在这里找到('数据'之后的第3行):

52 49 46 46  24 F0 0A 00  57 41 56 45  66 6D 74 20  RIFF $ð?? WAVE fmt 
10 00 00 00  01 00 02 00  80 3E 00 00  00 FA 00 00  ???? ???? >?? ?ú??
04 00 10 00  64 61 74 61  00 F8 0A 00  00 00 00 00  ???? data ?ø?? ????

基本上,您的文件似乎已被截断。有些玩家可能会忽略这一点并尝试播放文件末尾可用的内容。我想在Android上它会尝试根据预期的大小首先读取整个文件,因此IOException