Obecnie uruchamiam dzwonek na Androida i gra się dobrze.Android - Ringtone nie przestanie grać
Jednak gdy próbuję zatrzymać dzwonek, nie przestaje, lub co najmniej nie zatrzymuje się od razu, będzie odtwarzać, dopóki nie zacznie grać.
Oto jak skonfigurować dzwonka
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();
}
A oto jak próbuję go zatrzymać
if (CallDialogActivity.oRingtone != null) {
Log.d("RINGTONE", "Into Ringtone if");
Ringtone ringtone = CallDialogActivity.oRingtone;
oRingtone = null;
ringtone.stop();
}
ktoś natknąć się podobne problemy lub widzę żadnych błędów w mój kod?
EDIT:
Wystarczy dodać Dodałem rejestrowanie aby zobaczyć czy ringtone.isPlaying() zwraca true lub false po Wzywam ringtone.stop() i zwraca wartość false, jednak ton wciąż gra dla pary sekund (3 - 5 sekundach), po przed zatrzymaniem
myślę, że lepiej jeśli przestaniesz pierwszy dzwonek przed ustawieniem go na null. ringtone.stop() faktycznie działa dla mnie. – artsylar