2010-02-26 105 views
5

我目前在Android上啓動鈴聲,並且播放良好。Android - 鈴聲不會停止播放

但是,當我嘗試停止鈴聲時,它不停止或至少不會馬上停止,它會一直播放,直到播放完畢。

這裏是我設置的鈴聲:

int rm = audio_service.getRingerMode(); 
int vs = audio_service.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER); 

android.os.Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

if ((rm == AudioManager.RINGER_MODE_VIBRATE || 
    (rm == AudioManager.RINGER_MODE_NORMAL && vs == AudioManager.VIBRATE_SETTING_ON))) 
      v.vibrate(vibratePattern,1); 

if (audio_service.getStreamVolume(AudioManager.STREAM_RING) > 0) {       

    oRingtone = RingtoneManager.getRingtone(this, Settings.System.DEFAULT_RINGTONE_URI); 
    oRingtone.setStreamType(AudioManager.STREAM_RING); 
    oRingtone.play();  

    } 

這裏是我如何努力阻止它

if (CallDialogActivity.oRingtone != null) { 
     Log.d("RINGTONE", "Into Ringtone if"); 
     Ringtone ringtone = CallDialogActivity.oRingtone; 
     oRingtone = null; 
     ringtone.stop(); 
} 

有沒有人碰到similiar問題或看到任何錯誤我的代碼?

編輯:

我想補充我已經添加日誌記錄,看是否ringtone.isPlaying()返回true或false後,我打電話ringtone.stop(),它返回false,但語氣繼續播放的一對夫婦秒 - 停止

+0

我認爲這是更好,如果你停止鈴聲。 ringtone.stop()實際上適用於我。 – artsylar 2011-12-22 08:10:28

回答

6

對於任何人遇到此之前後(3 5秒):

我不得不使用的鈴聲經理,以幫助停止鈴聲。

添加以下行第一個設置爲null之前整理出來

ringtoneManager.stopPreviousRingtone();