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

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

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

Благодарю.

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

Solutions Collecting From Web of "Как вы обнаруживаете, когда звуковой файл закончил?"

Вы можете использовать класс 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(); 

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