Android studio Timer end 闹钟播放问题停止
Android studio Timer end Alarm sound playing problem with stop
我创建了一个计时器应用程序,该代码播放闹钟声音,但我该如何停止它? xD 我使用该代码进行播放:
Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
Ringtone ringtoneSound = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri)
if (ringtoneSound != null) {
ringtoneSound.play();
}
所以我想点击重置按钮然后停止,这怎么可能?
非常感谢,
多米尼克.
您可以先检查铃声是否在播放,然后才停止。
if(ringtoneSound.isPlaying()){
ringtoneSound.stop();
}
经过简单搜索,我认为铃声是注册到Android OS。只留下一个句柄让你做某事 operation.If 你失去了那个句柄,唯一停止的方法就是杀死应用程序。
所以我建议你制作铃声单例 mode.Sth 如下所示。
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();
}
}
}
我创建了一个计时器应用程序,该代码播放闹钟声音,但我该如何停止它? xD 我使用该代码进行播放:
Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
Ringtone ringtoneSound = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri)
if (ringtoneSound != null) {
ringtoneSound.play();
}
所以我想点击重置按钮然后停止,这怎么可能? 非常感谢, 多米尼克.
您可以先检查铃声是否在播放,然后才停止。
if(ringtoneSound.isPlaying()){
ringtoneSound.stop();
}
经过简单搜索,我认为铃声是注册到Android OS。只留下一个句柄让你做某事 operation.If 你失去了那个句柄,唯一停止的方法就是杀死应用程序。 所以我建议你制作铃声单例 mode.Sth 如下所示。
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();
}
}
}