Подтвердить что ты не робот

Как вы обнаруживаете, когда звуковой файл завершен?

Я воспроизвожу звуковой файл, используя этот код внутри действия вещательного приемника:

notification.sound = Uri.parse("android.resource://emad.app/raw/seven_chimes");

Я хотел бы узнать, когда этот файл закончил воспроизведение.

Я пробовал такой цикл, но я думаю, что это хорошо для медиаплеера, потому что он всегда = false, хотя я убедился, что звуковой файл все еще играет:

/*
 * Stay here until the chime sound is finished.
 */
   while (manager.isMusicActive()){
   }

Можете ли вы показать мне, что я должен использовать вместо manager.isMusicActive()

Спасибо.

Действительно, Имад

4b9b3361

Ответ 1

Вы можете использовать класс MediaPlayer и добавить прослушиватель Completion, который будет активирован, когда звук закончит воспроизведение

MediaPlayer mp = MediaPlayer.create(this,Uri.parse("android.resource://emad.app/raw/seven_chimes"));

mp.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                performOnEnd();
            }

            });

    mp.start();

Ответ 2

попробуйте использовать сервис для воспроизведения музыки. после того, как он будет воспроизводиться один раз, а затем остановите свое обслуживание, и вы можете добавить свою программу в метод onDestroy(). надеюсь, что это поможет:)