java.lang.IllegalStateException在MediaPlayer.isplaying()方法 [英] java.lang.IllegalStateException in MediaPlayer.isplaying() method

查看:5305
本文介绍了java.lang.IllegalStateException在MediaPlayer.isplaying()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 公共静态MediaPlayer的MP = NULL;
公共静态无效playGeneric(INT名,最终的ImageButton按钮,最后的ImageButton透水,上下文语境){
    button.setEnabled(假);
button.setClickable(假);
pervious.setEnabled(假);
pervious.setClickable(假);
    尝试{
        如果(MP =空&放大器;!&安培; mp.isPlaying())
        {
            mp.stop();
            mp.release();
            熔点=无效;
           熔点= MediaPlayer.create(上下文,姓名);
           mp.start();
        }
        其他
        {
            熔点= MediaPlayer.create(上下文,姓名);
            mp.setOn preparedListener(新MediaPlayer.On preparedListener(){
                @覆盖
                公共无效于prepared(MediaPlayer的为arg0){
                    //mp.$p$ppare();
                    mp.start();

                }

            });
        mp.setOnCompletionListener(新MediaPlayer.OnCompletionListener(){

            @覆盖
            公共无效onCompletion(MediaPlayer的MP){
                // TODO自动生成方法存根
                mp.release();
                的System.out.println(对象发行);
                button.setEnabled(真正的);
                button.setClickable(真正的);
                pervious.setEnabled(真正的);
                pervious.setClickable(真正的);
            }
        });
        }



}赶上(IllegalStateException异常E){
    // TODO自动生成的catch块
    e.printStackTrace();
}赶上(SecurityException异常E){
    // TODO自动生成的catch块
    e.printStackTrace();
    e.getMessage();
}赶上(NullPointerException异常E){
    // TODO自动生成的catch块
    e.printStackTrace();
    e.getMessage();
}
 

}

  

给我java.lang.IllegalStateException上mp.isplaying()方法,我新的机器人,请帮我解决掉。   我想停止音乐,如果它的演奏和another.if人后播放另一首歌曲1有想法让我知道andvance感谢。

     

logcat的:

  10-14 15:12:05.474:E / MediaPlayer的(15411):prepareAsync叫状态8
10-14 15:12:05.474:W / System.err的(15411):java.lang.IllegalStateException
10-14 15:12:05.474:W / System.err的(15411):在android.media.MediaPlayer prepare(本机方法)
10-14 15:12:05.474:W / System.err的(15411):在com.rogerscenter.LearnReadWriteSpell.Utility.Music.playGeneric(Music.java:93)
10-14 15:12:05.474:W / System.err的(15411):在com.rogerscenter.LearnReadWriteSpell.LetterCategory.Letter_Lesson1_activity.onCreate(Letter_Lesson1_activity.java:140)
10-14 15:12:05.474:W / System.err的(15411):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-14 15:12:05.474:W / System.err的(15411):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-14 15:12:05.474:W / System.err的(15411):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
10-14 15:12:05.474:W / System.err的(15411):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
10-14 15:12:05.474:W / System.err的(15411):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:928)
10-14 15:12:05.484:W / System.err的(15411):在android.os.Handler.dispatchMessage(Handler.java:99)
10-14 15:12:05.484:W / System.err的(15411):在android.os.Looper.loop(Looper.java:123)
10-14 15:12:05.484:W / System.err的(15411):在android.app.ActivityThread.main(ActivityThread.java:3647)
10-14 15:12:05.484:W / System.err的(15411):在java.lang.reflect.Method.invokeNative(本机方法)
10-14 15:12:05.484:W / System.err的(15411):在java.lang.reflect.Method.invoke(Method.java:507)
10-14 15:12:05.484:W / System.err的(15411):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
10-14 15:12:05.484:W / System.err的(15411):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-14 15:12:05.484:W / System.err的(15411):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

由于Android文档表明,如果MP是,如果没有当时java.lang.IllegalStateException被初始化将被抛出,所以你必须先用来初始化或者你有写

签出文档的http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying()

试试这样

  MP = MediaPlayer.create(背景下,名);

     尝试 {

    如果(mp.isPlaying()){
        mp.stop();
        mp.release();
        熔点= MediaPlayer.create(上下文,姓名);
    }



    mp.start();
}赶上(例外五){
}
 

public static MediaPlayer mp=null;
public static void playGeneric(int name, final ImageButton button,final ImageButton pervious,Context context) {
    button.setEnabled(false);
button.setClickable(false);
pervious.setEnabled(false);
pervious.setClickable(false);
    try{
        if(mp != null && mp.isPlaying())
        {
            mp.stop();
            mp.release();
            mp = null;
           mp=MediaPlayer.create(context, name);
           mp.start();
        }
        else
        {
            mp = MediaPlayer.create(context, name);
            mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer arg0) {
                    //mp.prepare();
                    mp.start();

                }

            });
        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                // TODO Auto-generated method stub
                mp.release();
                System.out.println("Object released");
                button.setEnabled(true);
                button.setClickable(true);
                pervious.setEnabled(true);
                pervious.setClickable(true);
            }
        });
        }



} catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}catch (SecurityException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    e.getMessage();
} catch (NullPointerException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    e.getMessage();
}

}

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 :

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

解决方案

As android docs suggest that if mp is if has not been initialized at that time java.lang.IllegalStateException will be thrown so you have to initilize first or you have to write

check out the docs http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying()

try like this

 mp=MediaPlayer.create(context, name);

     try {

    if (mp.isPlaying()) {
        mp.stop();
        mp.release();
        mp=MediaPlayer.create(context, name);
    }



    mp.start();
} catch (Exception e) {
}

这篇关于java.lang.IllegalStateException在MediaPlayer.isplaying()方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆