MediaPlayer player = MediaPlayer.create(context, R.raw.background);
player.start();
上面的代码是当前代码的一部分。 当我按下主页键时,MediaPlayer不会停止播放。
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (KeyCode == KeyEvent.KEYCODE_BACK) {
System.exit(0);
return true;
}
}
return super.onKeyDown(KeyCode, event);
}
我按下后退键时实现了上面显示的代码。 你认为上面的代码是否正确?感谢任何帮助。
答案 0 :(得分:1)
为此实现以下方法,
@Override
protected void onPause() {
super.onPause();
if(player != null)
player.stop();
}
@Override
protected void onStop() {
super.onStop();
if(player != null)
player.stop();
}
@Override
protected void onDestroy() {
super.onDestroy();
if(player != null)
player.stop();
}
答案 1 :(得分:1)
请尝试使用此解决方案:
public class PlayaudioActivity extends Activity {
private MediaPlayer mp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
final TextView t = (TextView) findViewById(R.id.textView1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopPlaying();
mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);
mp.start();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopPlaying();
mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);
mp.start();
}
});
}
private void stopPlaying() {
if (mp != null) {
mp.stop();
mp.release();
mp = null;
}
}
}
有关详情,请阅读以下文章:Android MediaPlayer Stop and Play
答案 2 :(得分:0)
如果您的媒体播放器正在运行您创建的活动,则可以使用player.stop()
方法拨打onStop()
。
编辑:
您的实现没问题,但它只会覆盖后退键。您还必须覆盖主页键以在按主页键时停止player
。 (但是,当隐藏用户界面时,请使用onStop()
代替它。)
请勿使用System.exit()
,而是使用finish()
。
如果您使用finish()
方法(销毁活动),请确保通过调用MediaPlayer
释放player.release()
资源并使播放器无效。 (即player = null
)