Android studio计时器结束停止时警报声音播放问题

问题描述 投票:0回答:2

我创建了一个计时器应用程序,该代码曾播放警报声音,但是如何停止它? xD我使用该代码进行播放:

Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
Ringtone ringtoneSound = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri)

if (ringtoneSound != null) {
    ringtoneSound.play();
}

所以我想单击重置按钮及其停止按钮,这有可能吗?非常感谢,多米尼克。

android android-studio android-layout android-alarms android-sound
2个回答
0
投票

您可以先检查是否正在播放铃声,然后才停止播放。

if(ringtoneSound.isPlaying()){
        ringtoneSound.stop();
    }

0
投票

经过简单的搜索,我认为铃声已注册到Android OS。只剩下一个手柄供您进行操作。如果您丢失该手柄,唯一的停止方法是杀死应用程序。因此,我建议您将铃声设为单实例模式。如下所示。

public class RingUtil {
private static RingUtil mInstance = null;
private Ringtone mRingtone;
private RingUtil(Context context) {
    Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    mRingtone = RingtoneManager.getRingtone(context.getApplicationContext(), ringtoneUri);
}
public static RingUtil getInstance(Context context) {
    if (null == mInstance) {
        mInstance = new RingUtil(context);
    }
    return mInstance;
}
public void play() {
    if (mRingtone.isPlaying()) {
        mRingtone.stop();
    }
    mRingtone.play();
}
public void stop() {
    if (mRingtone.isPlaying()) {
        mRingtone.stop();
    }
}

}

© www.soinside.com 2019 - 2024. All rights reserved.