你好我对android dev很新,我正在使用Eclipse而且我一直在开发一些音板。我的问题是:
public class BernardsActivity extends Activity {
MediaPlayer eileanBeag;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bernards_layout);
Button eileanBeagButton = (Button) findViewById(R.id.ButtonB1);
eileanBeagButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
eileanBeag = MediaPlayer.create(getApplicationContext(), R.raw.eilean_beag);
eileanBeag.start();
}
});
***public void onPause() {
eileanBeag.release();
}***
}
应用程序工作正常,所有音频都播放得很好,但是当我使用后退按钮离开应用程序时,它会告诉我进程已意外停止,我必须强制退出。
当我在onCreate方法之外定义MediaPlayer时,该方法工作正常,但我希望使用很多声音并减少加载时间我只在按下按钮后定义它。
我已经尝试过使用OnCompleteListener,它似乎确实有用,但它会提前关闭我的声音片段。
所以对此的任何帮助都将非常感激。
感谢。
答案 0 :(得分:3)
唯一看起来像问题的是,
在致电eileanBeag.release();
之前,您应致电eileanBeag.stop();
。您在玩游戏时无法直接释放播放器。您还缺少super.onPause();
答案 1 :(得分:2)
应该是这样的:
public void onPause() {
super.onPause();
eileanBeag.pause();
}
protected void onDestroy() {
super.onDestroy();
if(eileanBeag != null) {
eileanBeag.stop();
eileanBeag.release();
}
}
答案 2 :(得分:0)
您需要将super.onPause()
作为onPause
方法