13

私はAndroid4.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

着信音と着信音マネージャーでループをtrueに設定することで、この問題を解決しました。

 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 に答える