2010-05-26 48 views
0

我一直在努力与我们心爱的MediaPlayer类相当多... 具体而言,我只想播放一些文件中的声音... 我得到两种特定类型实际的错误,而不是continuesly但它似乎是随机的......有时10文件播放没有错误分辩了,那么MediPlayer似乎停止接受其他文件... 确定的第一个错误:关于IllegalStateExceptions,MediaPlayer,准备失败和状态码

- 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(),而不是准备(),但说实话它似乎并没有做任何差别都试过.. 第二个错误是它引发的异常:

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

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

+0

虎喜的State Diagram发布您的代码 – Jorgesys 2010-05-28 00:10:24

+1

播放10个文件?你确定你不想使用'SoundPool'吗? – 2010-05-28 00:18:00

+0

不用谢了,这10个文件是从网上动态下载的,它们可能在30秒到30分钟之间,我的理解是SoundPool只是一个很好的选择,如果它适用于较短的预装游戏类型的声音? – TiGer 2010-05-28 12:05:26

回答

0

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

这个错误是因为不正确的路径或的FileDescriptor的到来。

您应该检查媒体播放器类

相关问题