我在Android 4.0上編寫應用程序,當我按下按鈕時它將播放當前的鈴聲。如何從應用程序中循環/重複Android中的當前鈴聲?
但是在鈴聲中只播放了一次。我需要重複幾次。
我當前的代碼:
Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
final Ringtone r = RingtoneManager.getRingtone(c, notifi);
r.play();
我在Android 4.0上編寫應用程序,當我按下按鈕時它將播放當前的鈴聲。如何從應用程序中循環/重複Android中的當前鈴聲?
但是在鈴聲中只播放了一次。我需要重複幾次。
我當前的代碼:
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) {
}
@ satya.I在Service類中創建MediaPlayer,因爲我想使用'mediaPlayer.setDataSource(getApplicationContext(),uri);',它顯示此異常:'未處理的Exceptiom:java.io.IOException'。我該如何解決? –
@MinaDahesh你設法解決這個問題嗎? – Sam
@Sam。它太舊了!我不記得我爲什麼需要它。我會問你,因爲我找到了。 –
我已閱讀,手機鈴聲都必須有ANDROID_LOOP
標籤。 Ref:http://xanderx.com/2010/08/25/making-ringtones-loop-on-android/
您也可以嘗試使用AudioManager
播放此文件並將其設置爲循環播放。參考文獻:http://developer.android.com/reference/android/media/MediaPlayer.html#setLooping(boolean)
試戴棒棒糖上面的代碼也只有這個工作對我來說
//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);
Uri notifi = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); final鈴聲r = RingtoneManager.getRingtone(c,notifi); r.play(); – krrakesh16