Определить, закончена ли мелодия звонка

Я хочу определить, когда рингтон закончился, но 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, лучший???

0 ответов

Другие вопросы по тегам