按下后退按钮时停止媒体播放器MP3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按下后退按钮时停止媒体播放器MP3相关的知识,希望对你有一定的参考价值。
我的代码工作正常,除非你按下后退按钮。
当我按下停止按钮并且音频检查屏幕返回到我的菜单屏幕时,称为“测试”的MP3文件停止播放。完美...一切正常,直到我在手机上测试代码。当我使用android手机上的手机后退按钮(不是我的应用程序上的停止按钮)退出时,媒体播放器会继续播放。我尝试了所有代码并查看了每个相关问题。我使用onStop实现代码onPause完成keyevent.KEYCODE_BACK等等,没有任何效果。我很难过。
这是我的代码。如何通过按下相对于此代码的Android后退按钮来停止此MP3?
public class Audio_Check extends Activity{
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
public class Audio_Check extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.audio_check);
final MediaPlayer buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
Button stbutton = (Button) findViewById(R.id.startbutton);
stbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
buttonSound.start();
}
});
Button spbutton = (Button) findViewById(R.id.stopbutton);
spbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
buttonSound.stop();
buttonSound.release();
Intent openE1 = new Intent("com.myapp.mysite.MENU");
startActivity(openE1);
}
});
}
}
把这个方法,
@Override
protected void onDestroy() {
super.onDestroy();
buttonSound.stop();
buttonSound.reset();
buttonSound.release();
buttonSound = null;
}
希望它会奏效。
我使用onStop实现代码onPause完成keyevent.KEYCODE_BACK等等,没有任何效果
没有必要在onPause
或onStop
中实现这一点,只需覆盖后退按钮并停止媒体播放器并完成您的活动。
@Override
public void onBackPressed(){
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
}
如果您使用的API低于5:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
我无法入睡。保持编码和研究整晚,直到我开始工作。
有效!但是我必须在运行时基于详细的错误消息找出下一步。我不得不拿出“final和MediaPlayer”,否则当我通过模拟器运行它时,我会从Eclipse中强制关闭。编译代码时没有出现错误。
MediaPlayer buttonSound ; // declared above first @Override
// code after that
//改变了这个代码
final MediaPlayer buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//对此
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//它的工作原理谢谢
现在它的工作原理......这就是问题所在
注意buttonSound.start();被放在原始代码中?它高于});当我把它放在})之下;有效。显然它之前受到了保护,但现在它工作正常。
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
Button stbutton = (Button) findViewById(R.id.stbutton);
stbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
buttonSound.start();
// onDestroy goes right here
以上是关于按下后退按钮时停止媒体播放器MP3的主要内容,如果未能解决你的问题,请参考以下文章