私はAndroid4.0で、ボタンを押すと現在の着信音を再生するアプリケーションを作成しています。
しかし、着信音では一度だけ再生されます。数回繰り返す必要があります。
私の現在のコード:
Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
final Ringtone r = RingtoneManager.getRingtone(c, notifi);
r.play();
私はAndroid4.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)
着信音と着信音マネージャーでループをtrueに設定することで、この問題を解決しました。
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.setLooping(true);
r.play();
ここで着信音を開始しています。着信音を停止したい場合は、
r.stop();
着信音を停止する方法