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

IllegalStateExceptionprepare()prepareAsync()、またはオーバーロードsetDataSourceされたメソッドのいずれかを無効な状態で呼び出すなどのプログラミング エラーを防ぐためにスローされます。

orが他の状態で呼び出された場合、 anIllegalStateExceptionがスローされます。prepare()prepareAsync()

非同期seekTo(int)呼び出しは正しい方法で返されますが、実際のシーク操作は、特にストリーミングされているオーディオ/ビデオの場合、完了するまでに時間がかかる場合があります。実際のシーク操作が完了すると、が事前に を介して登録されているOnSeekComplete.onSeekComplete()場合、内部プレーヤー エンジンは指定されたユーザーを呼び出します。、、状態など、他の状態でも呼び出せますのでご注意ください 。OnSeekCompleteListenersetOnSeekCompleteListener(OnSeekCompleteListener)seekTo(int)PreparedPausedPlaybackCompleted

このデータはすべてここでカバーされています: http://developer.android.com/reference/android/media/MediaPlayer.html 実際、私はそれを直接引用しました。

を使用して発生したエラーを処理できるはずですOnErrorListener()

詳細については、OnErrorListener()こちらを参照してください。

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

エラー リスナーでは、次のことを行います。

  1. エラーを受け取ります。
  2. エラーのタイプを判別します。
  3. エラーを処理して、クラッシュすることなく状況を修正します。
于 2012-10-02T01:57:23.733 に答える