web-dev-qa-db-fra.com

Comment détectez-vous la fin d'un fichier audio?

Je joue un fichier son en utilisant ce code dans une activité de récepteur de diffusion:

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

Je voudrais détecter la fin de la lecture de ce fichier.

J'ai essayé une boucle comme celle-ci mais je pense que cela n'est bon que pour le lecteur multimédia car elle est toujours = false même si j'ai vérifié que le fichier son était toujours en cours de lecture:

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

Pouvez-vous me montrer ce que je devrais utiliser au lieu de manager.isMusicActive()?

44
Emad-ud-deen

Vous pouvez utiliser la classe MediaPlayer et ajouter un écouteur Achèvement à activer lorsque le son se termine

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();
105
Ronny

essayez d'utiliser le service pour lire la musique .. après l'avoir lu une fois, puis arrêtez votre service et vous pouvez ajouter votre programme sur la méthode de service onDestroy () .. j'espère que cela aide :)

1
Michael Frans