Android MediaPlayer没有';“暂停”和“恢复”之后,无法工作
我正在开发一个Android 2.2应用程序 我有以下活动:Android MediaPlayer没有';“暂停”和“恢复”之后,无法工作,android,android-activity,media-player,android-2.2-froyo,Android,Android Activity,Media Player,Android 2.2 Froyo,我正在开发一个Android 2.2应用程序 我有以下活动: public class StartActivity extends Activity { private MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo
public class StartActivity extends Activity {
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startpage);
}
@Override
protected void onResume() {
super.onResume();
ImageView ship = (ImageView)findViewById(R.id.greekShip);
ship.startAnimation(AnimationUtils.loadAnimation(this, R.anim.translate_right));
if (mp == null) {
mp = MediaPlayer.create(getApplicationContext(), R.raw.oceanwave);
}
else {
if (mp.isPlaying())
mp.stop();
mp.reset();
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mp.start();
}
@Override
protected void onPause() {
super.onPause();
if (mp != null) {
if (mp.isPlaying())
mp.stop();
}
}
}
如果我按电话上的home(主页)按钮,声音就会停止。但如果我重启应用程序,mediaplayer就会启动,但我什么也听不见
你知道问题出在哪里吗?
mp.prepare()
只在else代码中。根据您的代码,我会在活动停止时释放mp以释放未使用时的资源,然后您可以在onResume()中创建一个新的mp。prepare()
仅在else代码中。根据您的代码,我会在活动停止时释放mp以释放未使用的资源,然后您可以在onResume()
中创建一个新的mp。您的意思是在onPause中以onStop方法释放mediaplayer,而不是在onPause中释放mediaplayer?