Comment arrêter media player correctement , android
J'ai créé une liste de chansons de cliquez sur la chanson que je suis en mesure de jouer le morceau à l'aide de MedaiPlayer. Pendant qu'un morceau est en cours de lecture si l'utilisateur clique sur une autre chanson, puis je me suis arrêter le lecteur multimédia et de départ, le joueur de nouveau. Mais je suis l'exception illegalstateexception reset(). Voici le code où je suis l'exception. Comment arrêter un joueur correctement? aussi pourquoi suis-je de cette exception. Comment l'éviter?
public void stopPlayer() {
try {
if (player != null) {
//Log.e("Trying to Stop "," Player ");
player.stop();
player.release();
player.reset();//causes IllegalstateException
player = null;
}
} catch (Exception e) {
player = null;
playerStatus = false;
e.printStackTrace();
}
}
player.release()
causes de libérer le lecteur multimédia de l'objet, de sorte que vous ne peut pas le réinitialiser par la suite, parce que vous ne disposez pas de l'objet afin de le réinitialiser.
OriginalL'auteur Sunil Kumar Sahoo | 2011-11-22
Vous devez vous connecter pour publier un commentaire.
essayez ceci :
et aussi avoir un regard sur media player diagramme d'état.
OriginalL'auteur Pawan
Si vous voulez jouer à nouveau ,puis utiliser
player.reset()
,player.release()
signifie qu'il libère le joueur de l'objet, de sorte que vous avez à ré-initialiser le lecteur. Alors d'abord vous utilisezreset()
et puisrelease()
.release()
est utilisé lorsque votre objet de joueur n'a plus de travail. Quand votre activité détruitrelease()
méthode à utiliser pour une bonne pratique.Chaque fois que vous voulez l'arrêter:
Chaque fois que votre lecteur n'est plus nécessaire:
OriginalL'auteur Ramesh Akula
Si l'on a accepté de répondre à des œuvres, C'est une meilleure façon de réaliser la tâche
OriginalL'auteur Devrath
Envisagez-vous sur la réutilisation, le joueur de nouveau, ou êtes-vous fait avec le joueur? Si vous en avez terminé avec le lecteur, appel release() et pas de reset(). Si vous prévoyez de réutiliser le lecteur, appel reset() et ne libère pas().
reset() réinitialise le joueur à son état non initialisé.
release() libère toutes les ressources associées avec le joueur.
OriginalL'auteur Jason Robinson
La Media Player Diagramme D'État montre, et également les états:
Qui signifie, qu'après l'appel de stop(), il nous faut préparer() sur le même fichier audio si nous voulons jouer à nouveau. Sinon, l'appel de la méthode start() de nouveau de ne pas faire n'importe quoi.
Préparer() peut jeter l'exception, on doit l'envelopper dans un bloc try-catch, comme ceci:
OriginalL'auteur Hardzsi