[英]How to turn off MediaPlayer on back / home pressed
我正在寻找答案,当usep按下设备上的“后退”或“主页”按钮时,如何关闭MediaPlayer。
按下后退/主页或...时出现错误。按下主页时一切正常,但在还原应用程序时出现错误。 谁能帮助我,我找不到任何有效的代码:(吗?
这是我的代码:
package com.gwynbleiddesign.dzwiekizwierzat;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Typeface;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class AnimalDescription extends Activity {
ImageView animalImage;
TextView txtNazwa, txtOpisZwierzecia;
int selectedAnimal = 0;
MediaPlayer mPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animal_description);
Typeface segoeFont=Typeface.createFromAsset(getAssets(),"fonts/segoeprb.ttf");
txtNazwa = (TextView)findViewById(R.id.txtAnimalName);
txtNazwa.setTypeface(segoeFont);
txtOpisZwierzecia = (TextView)findViewById(R.id.txtAnimalDescription);
txtOpisZwierzecia.setTypeface(segoeFont);
animalImage = (ImageView)findViewById(R.id.imgAnimalPhoto);
selectedAnimal = getIntent().getExtras().getInt("selectedAnimal");
txtNazwa.setText(dane.nazwy[selectedAnimal]+"");
animalImage.setImageResource(dane.zdjecia[selectedAnimal]);
mPlayer = MediaPlayer.create(this,dane.dzwieki[selectedAnimal]);
animalImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPlayer.start();
}
});
}
@Override
public void onBackPressed(){
mPlayer.reset();
mPlayer.release();
mPlayer = null;
super.onBackPressed();
}
@Override
public void onPause(){
//mPlayer.reset();
mPlayer.release();
mPlayer = null;
super.onPause();
}
@Override
public void onStop(){
mPlayer.reset();
mPlayer.release();
mPlayer = null;
super.onStop();
}
}
如果您是第一次运行应用程序,则将调用onCreate
方法。 如果您关闭它并重新打开它(并且JVM没有释放内存),则不会再次调用onCreate
,因此您的MediaPlayer
为null
因为在活动关闭时触发了onPause
。
检查Android Activity生命周期并在onResume
初始化MediaPlayer
并且请下次发布您的Logcat
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.