我创建了一个包含2个活动的应用程序,第一个是listView,第二个是带有2个按钮的活动,播放和暂停音频文件。 我想在更改活动后停止播放音频(转到listView或home),但它在后台播放。 我尝试了“onBackPressed”方法,但是eclipse说错误。 请帮我 。 我的代码:
public class Poems extends Activity {
MediaPlayer myMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.poems_layout);
getActionBar().setDisplayHomeAsUpEnabled(false);
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#e64e35")));
Bundle extras = getIntent().getExtras();
if (extras != null) {
String my_key_number = extras.getString("key_number");
TextView tv = (TextView) findViewById(R.id.textViewpp);
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Mj_Tehran.ttf");
tv.setTypeface(tf);
String stringName = "string_key_" + my_key_number;
int resID = getResources().getIdentifier(stringName, "string", getPackageName());
String stringToShow = getResources().getString(resID);
tv.setText(stringToShow);
LinearLayout layout2 = (LinearLayout) findViewById(R.id.linearLayout2);
// RelativeLayout layout = (RelativeLayout) findViewById(R.id.RelativeLayout1);
String imageName = "pic_" + my_key_number;
int resID2 = getResources().getIdentifier(imageName, "drawable", getPackageName());
layout2.setBackgroundResource(resID2);
String voiceName = "audio_" + my_key_number;
int resID3 = getResources().getIdentifier(voiceName, "raw", getPackageName());
final MediaPlayer mediaPlayer1 = MediaPlayer.create(Poems.this, resID3);
Button playBtn = (Button) findViewById(R.id.btn_start);
OnClickListener listenToStart = new OnClickListener() {
@Override
public void onClick(View arg0) {
mediaPlayer1.start();
}
};
playBtn.setOnClickListener(listenToStart);
Button stopBtn = (Button) findViewById(R.id.btn_stop);
OnClickListener listenToPause = new OnClickListener() {
@Override
public void onClick(View arg0) {
mediaPlayer1.stop();
mediaPlayer1.release();
}
};
stopBtn.setOnClickListener(listenToPause);
}
};
@Override
public void onBackPressed() {
mediaPlayer1.stop(); *//mediaPlayer1 cannot be resolved*
finish();
}
答案 0 :(得分:0)
你需要覆盖。
@override
protected void onDestroy(){
myMediaPlayer.stop();
}
也会覆盖onPause()
@override
protected void onPause(){
myMediaPlayer.stop();
}
答案 1 :(得分:0)
它是super.onBackPressed();
,不能解决问题。
您的解决方案通过按钮调用myMediaPlayer.stop();
来更改其他活动。