2011-04-29 4 views
0

J'ai créé un bouton et lorsque vous cliquez dessus, il émet un son bref (une seconde maximum). Mais lorsque je clique sur le bouton environ 20 fois de suite, je reçois la force de fermeture .. Le code est:La force de MediaPlayer se ferme après des clics consécutifs

final Button button = (Button) findViewById(R.id.button); 
button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     // Perform action on clicks 
     MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.buzzer); 
     mp.start(); 
     } 
}); 

J'ai essayé avec mp.stop(); mais mon son arrête après avoir été joué la moitié des le temps ...

Encore une chose, est-ce que quelqu'un sait comment "préparer" le son quand je clique? Parce que le son est retardé de quelques millisecondes la première fois que j'appuie sur le bouton.

+0

S'il vous plaît montrer la logcat avec l'erreur – Aleadam

Répondre

2

Créez une variable membre MediaPlayer et initialisez-la en onCreate() de la même manière que vous le faites dans l'écouteur. Puis, dans l'auditeur il suffit d'utiliser ce code:

if(mPlayer.isPlaying()) { 
    mPlayer.stop(); 
} 
mPlayer.start(); 

appellent alors dans votre activité finish(). Ma conjecture est que puisque aucune de vos instances de MediaPlayer n'est libérée, il manque de mémoire à utiliser.

Le document officiel MediaPlayer est en fait incroyablement descriptif et utile: http://developer.android.com/reference/android/media/MediaPlayer.html

+0

+1 votre réponse est meilleure pour ce cas. – MByD

+0

Merci beaucoup! Regardera également le site de développement Android! – Kevin

Questions connexes