2011-10-05 49 views
0

你好,我對Android開發新手,我使用Eclipse和我一直在開發一些音板。我的問題是這樣的:Android應用程序崩潰時打電話onPause

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

添加try-catch塊,並嘗試找出它是什麼樣的異常 – Sergey

回答

3

,看起來像一個問題的唯一的事情是, 內。玩遊戲時無法直接釋放玩家。你還缺少super.onPause();

0

你需要調用eileanBeag.release();你應該叫eileanBeag.stop();前致電super.onPause()作爲第一個發言的方法

2

它應該是這樣的:

public void onPause() { 
    super.onPause(); 
    eileanBeag.pause(); 
} 

protected void onDestroy() { 
    super.onDestroy(); 
    if(eileanBeag != null) { 
     eileanBeag.stop(); 
     eileanBeag.release(); 
    } 
}