关于IllegalStateExceptions,MediaPlayer,准备失败和状态代码

时间:2010-05-26 13:34:16

标签: android media-player ioexception

我一直在与我们心爱的MediaPlayer课程中苦苦挣扎...... 具体来说,我想简单地播放一些文件中的声音...... 我实际上得到了两种特定类型的错误,而不是继续,但它似乎是随机的...有时10个文件被播放,没有错误,然后MediPlayer似乎停止接受另一个文件...... 好的第一个错误:

- 05-26 15:02:00.916: ERROR/MediaPlayer(25793): error (1, -4)
- 05-26 15:02:00.916: ERROR/setupplayer(25793): java.io.IOException: Prepare failed.: status=0x1

对于这个我看到了几个解决方案: 使用

mp.setDataSource(ins.getFD()); (with ins being an inputstream to my File)

和/或使用

mp.setDataSource(ins.getFD(), 0, f.length());

不幸的是,两者都无法解决问题,我只想知道非常详尽的错误(1,-4)是什么......我在哪里可以找到MediaPlayer的状态代码? 此外,我尝试使用prepareAsync()而不是prepare(),但说实话,它似乎没有任何区别。 第二个错误是引发的异常:

05-26 15:17:30.456: ERROR/playNextPlayer(27303): Error caught : java.lang.IllegalStateException

我猜,哪个可能与第一个错误/问题有关?

1 个答案:

答案 0 :(得分:0)

试试mp.setDataSource(String path) 例如,mp.setDataSource("sdcard/1.mp3");

因错误的路径或FileDescriptor而出现错误。

您应该检查Mediaplayer类的State Diagram