MediaPlayer.isplaying()方法中的java.lang.IllegalStateException

前端之家收集整理的这篇文章主要介绍了MediaPlayer.isplaying()方法中的java.lang.IllegalStateException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. public static MediaPlayer mp=null;
  2. public static void playGeneric(int name,final ImageButton button,final ImageButton pervIoUs,Context context) {
  3. button.setEnabled(false);
  4. button.setClickable(false);
  5. pervIoUs.setEnabled(false);
  6. pervIoUs.setClickable(false);
  7. try{
  8. if(mp != null && mp.isPlaying())
  9. {
  10. mp.stop();
  11. mp.release();
  12. mp = null;
  13. mp=MediaPlayer.create(context,name);
  14. mp.start();
  15. }
  16. else
  17. {
  18. mp = MediaPlayer.create(context,name);
  19. mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  20. @Override
  21. public void onPrepared(MediaPlayer arg0) {
  22. //mp.prepare();
  23. mp.start();
  24.  
  25. }
  26.  
  27. });
  28. mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  29.  
  30. @Override
  31. public void onCompletion(MediaPlayer mp) {
  32. // TODO Auto-generated method stub
  33. mp.release();
  34. System.out.println("Object released");
  35. button.setEnabled(true);
  36. button.setClickable(true);
  37. pervIoUs.setEnabled(true);
  38. pervIoUs.setClickable(true);
  39. }
  40. });
  41. }
  42.  
  43.  
  44.  
  45. } catch (IllegalStateException e) {
  46. // TODO Auto-generated catch block
  47. e.printStackTrace();
  48. }catch (SecurityException e) {
  49. // TODO Auto-generated catch block
  50. e.printStackTrace();
  51. e.getMessage();
  52. } catch (NullPointerException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. e.getMessage();
  56. }

}

give me java.lang.IllegalStateException on mp.isplaying() method,i am new in android please help me to solve out.
i want to stop music if its playing and play another song one after another.if anyone have idea let me know thanks in andvance.

logcat :

  1. 10-14 15:12:05.474: E/MediaPlayer(15411): prepareAsync called in state 8
  2. 10-14 15:12:05.474: W/System.err(15411): java.lang.IllegalStateException
  3. 10-14 15:12:05.474: W/System.err(15411): at android.media.MediaPlayer.prepare(Native Method)
  4. 10-14 15:12:05.474: W/System.err(15411): at com.rogerscenter.LearnReadWriteSpell.Utility.Music.playGeneric(Music.java:93)
  5. 10-14 15:12:05.474: W/System.err(15411): at com.rogerscenter.LearnReadWriteSpell.LetterCategory.Letter_Lesson1_activity.onCreate(Letter_Lesson1_activity.java:140)
  6. 10-14 15:12:05.474: W/System.err(15411): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  7. 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
  8. 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
  9. 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
  10. 10-14 15:12:05.474: W/System.err(15411): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
  11. 10-14 15:12:05.484: W/System.err(15411): at android.os.Handler.dispatchMessage(Handler.java:99)
  12. 10-14 15:12:05.484: W/System.err(15411): at android.os.Looper.loop(Looper.java:123)
  13. 10-14 15:12:05.484: W/System.err(15411): at android.app.ActivityThread.main(ActivityThread.java:3647)
  14. 10-14 15:12:05.484: W/System.err(15411): at java.lang.reflect.Method.invokeNative(Native Method)
  15. 10-14 15:12:05.484: W/System.err(15411): at java.lang.reflect.Method.invoke(Method.java:507)
  16. 10-14 15:12:05.484: W/System.err(15411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  17. 10-14 15:12:05.484: W/System.err(15411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  18. 10-14 15:12:05.484: W/System.err(15411): at dalvik.system.NativeStart.main(Native Method)

解决方法

由于android文档建议,如果mp是如果没有被初始化,那么java.lang.IllegalStateException将被抛出,所以你必须首先启动,或者你必须写

查看文档http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying()

尝试这样

  1. mp=MediaPlayer.create(context,name);
  2.  
  3. try {
  4.  
  5. if (mp.isPlaying()) {
  6. mp.stop();
  7. mp.release();
  8. mp=MediaPlayer.create(context,name);
  9. }
  10.  
  11.  
  12.  
  13. mp.start();
  14. } catch (Exception e) {
  15. }

猜你在找的Java相关文章