5

現在、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();
}

誰かが同様の問題に遭遇したり、私のコードに間違いを見たりしましたか?

編集:

追加するだけで、 ringtone.stop() を呼び出した後に ringtone.isPlaying() が true または false を返すかどうかを確認するログを追加し、false を返しますが、トーンは数秒間 (3 ~ 5 秒) 再生され続けます。停止中

4

1 に答える 1

6

これに遭遇した人のために:

着信音を停止するには、RingTone manager を使用する必要がありました。

次の行を追加すると、整理されました

ringtoneManager.stopPreviousRingtone();
于 2010-03-11T13:58:21.163 に答える