有时我会被MediaPlayer抛出IllegalStateException.SeekTo(int) MediaPlayer在Service中运行,并调用SeekTo(int),如下所示:
public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
答案 0 :(得分:1)
IllegalStateException
用于防止编程错误,例如调用prepare()
,prepareAsync()
或其中一个处于无效状态的重载setDataSource
方法。
如果在任何其他州调用IllegalStateException
或prepare()
,则会引发prepareAsync()
。
尽管异步seekTo(int)
调用以正确的方式返回,但实际的搜索操作可能需要一段时间才能完成,尤其是对于流式传输的音频/视频。当实际搜索操作完成时,如果事先通过OnSeekComplete.onSeekComplete()
注册了OnSeekCompleteListener
,则内部玩家引擎会调用提供的setOnSeekCompleteListener(OnSeekCompleteListener)
用户。
请注意,seekTo(int)
也可以在其他州调用,例如Prepared
,Paused
和PlaybackCompleted
州。
此数据全部包含在此处:http://developer.android.com/reference/android/media/MediaPlayer.html 事实上我直接引用了它。
您应该能够使用OnErrorListener()
处理遇到的任何错误。
您可以在此处找到有关OnErrorListener()
的更多信息:
http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html
在错误监听器中,您将: