Я сейчас запускаю рингтон на 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();
}
Кто-нибудь сталкивался с похожими проблемами или видел ошибки в моем коде?
EDIT:
Просто добавлю, что я добавил запись в журнал, чтобы увидеть, возвращает ли ringtone.isPlaying () значение true или false после того, как я вызываю ringtone.stop (), и возвращает false, однако звук продолжает воспроизводиться в течение пары секунд (3–5 секунд). ) после до остановки