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