13

我正在 android 4.0 上编写一个应用程序,当我按下按钮时它将播放当前铃声。

但在铃声中只播放一次。我需要它重复几次。

我当前的代码:

Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
final Ringtone r = RingtoneManager.getRingtone(c, notifi);
r.play();
4

5 回答 5

23

试试这个代码,我以前用过这个代码,可以连续播放铃声,直到你停止

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) {
}   
于 2012-09-05T12:13:08.250 回答
9

在棒棒糖上尝试了上述代码,只有这对我有用

  //activating looping ringtone sound
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    player = MediaPlayer.create(this, notification);
    player.setLooping(true);
    player.start();
于 2015-05-17T21:54:21.803 回答
4

您可以让计时器定期检查铃声是否仍在播放。例如,每秒:

mRingtone.play();
mTimer = new Timer();
mTimer.scheduleAtFixedRate(new TimerTask() {
    public void run() {
        if (!mRingtone.isPlaying()) {
            mRingtone.play();
        }
    }
}, 1000*1, 1000*1);
于 2017-09-22T19:02:54.583 回答
0

我读过铃声必须有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)

于 2012-09-05T09:36:40.380 回答
0

我通过使用铃声和铃声管理器设置循环为真来解决这个问题。

 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);

 Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
 r.setLooping(true);
 r.play();

我在这里开始铃声,当我们想停止铃声时,我们可以打电话

r.stop();

停止铃声的方法

于 2021-12-10T10:49:46.483 回答