0

有时我得到 MediaPlayer.SeekTo(int) 抛出的 IllegalStateException MediaPlayer 在服务中运行,并像这样调用 SeekTo(int):

public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
4

1 回答 1

1

IllegalStateException抛出以防止编程错误,例如调用prepare(),或处于无效状态prepareAsync()的重载方法之一。setDataSource

如果或在任何其他状态下调用,IllegalStateException则抛出An 。prepare()prepareAsync()

尽管异步seekTo(int)调用以正确的方式返回,但实际的查找操作可能需要一段时间才能完成,尤其是对于正在流式传输的音频/视频。当实际的搜索操作完成时,OnSeekComplete.onSeekComplete()如果OnSeekCompleteListener事先通过setOnSeekCompleteListener(OnSeekCompleteListener). 请注意,seekTo(int)也可以在其他状态下调用,例如Prepared,PausedPlaybackCompleted state。

这些数据都在这里覆盖:http: //developer.android.com/reference/android/media/MediaPlayer.html 其实我是直接引用的。

您应该能够处理使用OnErrorListener().

您可以在此处找到有关 an 的更多信息OnErrorListener()

http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html

在错误侦听器中,您将:

  1. 接收错误。
  2. 确定错误的类型。
  3. 处理错误以纠正情况而不会崩溃。
于 2012-10-02T01:57:23.733 回答