我正在开发Android 2.2应用程序。
我有以下活动:
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();
}
}
}
如果我按下电话上的主页按钮,声音会停止。但是,如果我重新启动应用程序,媒体播放器就会启动,但我听不到任何声音。
你知道问题出在哪里吗?
答案 0 :(得分:0)
mp.prepare()
仅在else代码中。根据您的代码,我会在活动停止时释放mp以释放资源而不使用,然后您可以在onResume()