Определить, закончена ли мелодия звонка
Я хочу определить, когда рингтон закончился, но Android Ringtone
класс не имеет OnCompletionListener
как MediaPlayer
класс имеет. Конкретно и на практике я играю рингтон следующим образом:
Ringtone r = RingtoneManager.getRingtone(
getApplicationContext(), soundUri);
r.play();
И я хочу поймать событие завершения проигрывателя рингтонов (если он даже запускает это событие...), как можно сделать с MediaPlayer
учебный класс. Я знаю, что Ringtone
класс предоставляет метод isPaying
но мне не нравится решение периодически проверять его, пока он не возвращает ложь... С другой стороны, с MediaPlayer
класс, можно определить, закончил ли игрок что-либо, гораздо более чистым способом, установив OnCompletionListener
Перезвоните:
final MediaPlayer player = new MediaPlayer();
player.setDataSource(filepath);
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
player.release();
}
});
player.prepare();
player.start();
Итак, как я могу сделать то же самое с помощью менеджера мелодий звонка? Это вообще возможно? Или решение периодически проверять Ringtone.isPlaying
До тех пор, пока не вернется false, лучший???