Как вы определяете, когда звуковой файл закончен? - PullRequest
44 голосов
/ 10 сентября 2011

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

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()?

Ответы [ 2 ]

105 голосов
/ 10 сентября 2011

Вы можете использовать класс 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();
1 голос
/ 10 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...