有時我得到IllegalStateException異常由MediaPlayer.SeekTo(INT)拋出 在MediaPlayer運行在服務和呼叫SeekTo(INT)是這樣的:MediaPlayer.SeekTo(INT)拋出IllegalStateException異常
public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
有時我得到IllegalStateException異常由MediaPlayer.SeekTo(INT)拋出 在MediaPlayer運行在服務和呼叫SeekTo(INT)是這樣的:MediaPlayer.SeekTo(INT)拋出IllegalStateException異常
public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
IllegalStateException
以防止編程錯誤,例如調用prepare()
,prepareAsync()
或其中一個過載的setDataSource
方法處於無效狀態。
如果prepare()
或prepareAsync()
在任何其他狀態下被調用,則會拋出IllegalStateException
。
儘管異步調用seekTo(int)
返回正確方式,但實際的搜索操作可能需要一段時間才能完成,特別是對於正在流式傳輸的音頻/視頻。當實際查找操作完成時,如果OnSeekCompleteListener
已通過setOnSeekCompleteListener(OnSeekCompleteListener)
預先註冊,則內部播放器引擎會呼叫用戶提供的OnSeekComplete.onSeekComplete()
。 請注意,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
在錯誤監聽你會:
首先,你爲什麼要用'!(value <= -1)'?這與'(value> = 0)'基本相同' - 對不起,這似乎是一種非常奇怪的做事方式。其次,你是否檢查過'MediaPlayer'和'seekTo(...)'方法的文檔?如果處於空閒狀態,初始化狀態,停止狀態或錯誤狀態,它將引發異常。 http://developer.android.com/reference/android/media/MediaPlayer.html#Valid_and_Invalid_States – Squonk