J'ai un bouton qui lit un fichier audio sur son écouteur de clic. Si le bouton est cliqué encore et encore pendant la lecture du fichier audio, l'application se bloque. Quelle est la solution?Comment gérer l'exception d'exécution lors de la lecture de fichiers audio?
Voici un code de référence:
private OnClickListener btnMercyListener = new OnClickListener()
{
public void onClick(View v)
{
// Toast.makeText(getBaseContext(),
// "Mercy audio file is being played",
// Toast.LENGTH_LONG).show();
if (status==true)
{
mp.stop();
mp.release();
status = false;
}
else
{
mp = MediaPlayer.create(iMEvil.this,R.raw.mercy);
//mp.start();
try{
mp.start();
status= true;
//mp.release();
}catch(NullPointerException e)
{
Log.v("MP error",e.toString());
}
}
mp.setOnCompletionListener(new OnCompletionListener(){
// @Override
public void onCompletion(MediaPlayer arg0) {
mp.release();
status = false;
}
}
);
}
};
Pourquoi n'essayez-vous pas d'attraper juste une exception? – Kiril
Il ne me montre jamais sur l'émulateur. Je dois le tester sur l'appareil. Et lorsque le bouton est continuellement cliqué 8 fois ou plus, l'application se bloque. J'ai utilisé une variable booléenne publique appelée status et essayé de régler ses valeurs pour jouer seulement quand un son existant n'est pas joué. Je me demande si la méthode booléenne isPlaying() peut m'aider? Je suis coincé en ce moment. Tout indice? –
Si l'application tombe en panne, je suis sûr qu'elle lancera une exception, alors essayez d'attraper l'exception, écrivez-la dans votre journal, puis déboguez l'exception. – Kiril