【问题标题】:Android - Ringtone wont stop playingAndroid - 铃声不会停止播放
【发布时间】:2010-02-26 15:06:43
【问题描述】:

我目前在 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 秒) ) 在停止之前之后

【问题讨论】:

  • 我认为最好先停止铃声,然后再将其设置为空。 ringtone.stop() 实际上对我有用。

标签: java android audio ringtone


【解决方案1】:

对于遇到此问题的任何人:

我不得不使用铃声管理器来帮助停止铃声。

添加以下行将其整理出来

ringtoneManager.stopPreviousRingtone();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2020-10-17
    • 1970-01-01
    相关资源
    最近更新 更多