Android MediaPlayer发行版();错误

Android MediaPlayer发行版();错误,android,media-player,release,Android,Media Player,Release,我有两个活动和一个静态媒体播放器在我的第一个活动中,我准备并启动媒体播放器,然后跳转到其他活动。在第二个活动中,当我按下第二个活动上的“后退”按钮时,我可以暂停并播放此媒体播放器。它转到第一个活动,然后停止媒体播放器,然后释放媒体播放器,但mp.release给了我“已意外停止错误”。你能帮我吗?我需要让这个mp.release()工作 我认为您需要在释放mediaplayer对象之前停止进度更新循环,因为您不允许对已发布的mediaplayer调用isplay(),请参阅有效状态列表添加Log

我有两个活动和一个静态媒体播放器在我的第一个活动中,我准备并启动媒体播放器,然后跳转到其他活动。在第二个活动中,当我按下第二个活动上的“后退”按钮时,我可以暂停并播放此媒体播放器。它转到第一个活动,然后停止媒体播放器,然后释放媒体播放器,但mp.release给了我“已意外停止错误”。你能帮我吗?我需要让这个mp.release()工作


我认为您需要在释放mediaplayer对象之前停止进度更新循环,因为您不允许对已发布的mediaplayer调用isplay(),请参阅有效状态列表添加LogCat输出。。。
 new AsyncTask<Void, Double, Void>() {

        @Override
        protected Void doInBackground(Void... params) {

            while (true) {
                publishProgress(Math.random());
                SystemClock.sleep(3000);

                if(isOnline(Start.this) == true && connection == true){
                    LinkedList<String> urls = readM3UtoUrlList("url.m3u");

                    mp = new MediaPlayer();
                    try {
                        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);    
                        mp.setDataSource(urls.getFirst());
                        mp.setOnPreparedListener(new OnPreparedListener() {
                            @Override
                            public void onPrepared(MediaPlayer mp) {
                                Intent i = new Intent(Start.this, RadyoBabylonActivity.class);
                                startActivityForResult(i, RadyoBabylonActivity.class.hashCode());
                            }
                        });

                        mp.prepare();
                        mp.start();


                    } catch (Exception e) {

                        e.printStackTrace();
                    } 
                }
            }

        }

        @Override
        protected void onProgressUpdate(Double... values) {


            }
        }
    }.execute();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode==-1){
        Log.d("myerror", "kapanacavk");
        mp.stop();

        if(!mp.isPlaying())
        {
            mp.release();
            finish();
        }


    }
}
ERROR/AndroidRuntime(7480): FATAL EXCEPTION: main
ERROR/AndroidRuntime(7480): java.lang.IllegalStateException
ERROR/AndroidRuntime(7480):     at android.media.MediaPlayer.isPlaying(Native Method)
ERROR/AndroidRuntime(7480):     at com.radyobabylon.RadyoBabylonActivity$2.onProgressUpdate(RadyoBabylonActivity.java:189)
ERROR/AndroidRuntime(7480):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:432)
ERROR/AndroidRuntime(7582):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(7582):     at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(7582):     at android.app.ActivityThread.main(ActivityThread.java:4627)
ERROR/AndroidRuntime(7582):     at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(7582):     at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(7582):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
ERROR/AndroidRuntime(7582):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
ERROR/AndroidRuntime(7582):     at dalvik.system.NativeStart.main(Native Method)