我目前在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.isplaying()在调用ringtone.stop()后返回true或false,它返回false,但是在停止之前,铃声会持续播放几秒钟(3-5秒)。