我正在 android 4.0 上编写一个应用程序,当我按下按钮时它将播放当前铃声。
但在铃声中只播放一次。我需要它重复几次。
我当前的代码:
Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
final Ringtone r = RingtoneManager.getRingtone(c, notifi);
r.play();
我正在 android 4.0 上编写一个应用程序,当我按下按钮时它将播放当前铃声。
但在铃声中只播放一次。我需要它重复几次。
我当前的代码:
Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
final Ringtone r = RingtoneManager.getRingtone(c, notifi);
r.play();
试试这个代码,我以前用过这个代码,可以连续播放铃声,直到你停止
try {
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(this, alert);
final AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_RING) != 0) {
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
mMediaPlayer.setLooping(true);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
} catch(Exception e) {
}
在棒棒糖上尝试了上述代码,只有这对我有用
//activating looping ringtone sound
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
player = MediaPlayer.create(this, notification);
player.setLooping(true);
player.start();
您可以让计时器定期检查铃声是否仍在播放。例如,每秒:
mRingtone.play();
mTimer = new Timer();
mTimer.scheduleAtFixedRate(new TimerTask() {
public void run() {
if (!mRingtone.isPlaying()) {
mRingtone.play();
}
}
}, 1000*1, 1000*1);
我读过铃声必须有ANDROID_LOOP
标签。参考:http://xanderx.com/2010/08/25/making-ringtones-loop-on-android/
您也可以尝试使用播放此文件AudioManager
并将其设置为循环播放。参考:http://developer.android.com/reference/android/media/MediaPlayer.html#setLooping(boolean)
我通过使用铃声和铃声管理器设置循环为真来解决这个问题。
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.setLooping(true);
r.play();
我在这里开始铃声,当我们想停止铃声时,我们可以打电话
r.stop();
停止铃声的方法