2012-03-08 82 views
1

在一個活動中,我使用兩個媒體播放器爲不同的聲音,如果兩個聲音播放和後退按鈕被推沒有問題,它工作正常。媒體播放器停止和釋放。(MP設置爲循環,MPS只是扮演一個短聲)強制關閉如果mediaplayer不使用和後退按鈕推

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    mp.stop(); 
    super.onPause(); 
} 
@Override 
protected void onStop() { 
    // TODO Auto-generated method stub 
    mp.release(); 
    mps.release(); 
    super.onStop(); 
} 

但是,如果一個和/或兩個聲音都沒有打過我得到一個強制關閉時,後退按鈕是推送和空指針異常。你將如何編寫代碼來檢查媒體播放器是否曾經使用過,因此需要停止並釋放它們?

+0

你可以使用一個數,如果添加一個給它的變量有一直在玩,然後檢查它是否等於0。 – bobthemac 2012-03-08 16:29:55

+0

我會試一試,謝謝。 – kmb 2012-03-08 17:02:28

回答

0

如果您在onPause和onStop中獲得空指針,則需要檢查mp是否爲空。

@Override 
protected void onPause() { 
    if (mp != null) 
     mp.stop(); 
    super.onPause(); 
} 
@Override 
protected void onStop() { 
    if (mp != null) 
    mp.release(); 
    if (mps != null) 
    mps.release(); 

    super.onStop(); 
} 

你可以保持一個計數,如果你願意,但是這意味着保持另一個變量的軌道時,你已經有機會獲得你需要

+0

我得到它的工作!我在播放短音後直接釋放媒體播放器,並使用if(mp!= null)停止並在onPause上釋放。謝謝大家的建議。 – kmb 2012-03-08 18:14:11

0

你可以使用一個計數,並添加一個,如果有一個遊戲,然後檢查它是否等於0或不。