質問

時々、Mediaplayer.seekto(int)によってスローされたIllegalStateExceptionを取得します。Mediaplayerはサービスで実行され、このようなSeek(int)を呼び出します。

public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
役に立ちましたか?

解決

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

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

  1. エラーを受け取ります。
  2. エラーの種類を特定します。
  3. エラーを処理して、クラッシュせずに状況を修正します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top