2017-05-17 1 views
0

にこれは私のコードです。これらはログです:java.lang.IllegalStateExceptionはMediaPlayerの

FATAL EXCEPTION: main 
Process: testapplication.android.com.guesstune_v2, PID: 3641 
java.lang.IllegalStateException 
at android.media.MediaPlayer._prepare(Native Method) 
at android.media.MediaPlayer.prepare(MediaPlayer.java:1351) 
at testapplication.android.com.guesstune_v2.PlayActivity$6.onTick(PlayActivity.java:316) 
at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:133) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:7007) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

MediaPlayerの準備は何ですか?コードに何を追加すればよいですか?私は初心者です、おそらく愚かな質問と悪い英語のために申し訳ありません。

答えて

0

MediaPlayer状態のドキュメント:特定のリソースIDのMediaPlayerのを作成するための

MediaPlayer create (Context context, int resid) 簡易メソッドです。成功すると、prepare()は既に呼び出されているので、再度呼び出さないでください。

https://developer.android.com/reference/android/media/MediaPlayer.html#create(android.content.Context, int)

prepare()がか初期化停止状態が、create(Context context, int resid)が呼び出されたときに、それがであることMediaPlayerその結果prepare()を呼び出すのいずれかであることをMediaPlayerを必要とするので、だからあなたIllegalStateExceptionが発生します準備済み状態は、prepare()が呼び出されたときであってはなりません。

要約:prepare()コールを削除し、IllegalStateExceptionはもう発生しないはずです。

有効な状態の完全な状態図とリストがドキュメントに示されています。

関連する問題