J'essaie de faire un simple enregistreur audio. Le problème avec l'enregistreur audio est que, chaque fois que la barre de progression devient plus rapide. Cela fonctionnerait bien au premier tour, mais si vous annulez l'audio et que vous voulez revenir la deuxième fois, cela devient plus rapide.La barre de menu s'exécute plus rapidement sur chaque onClick
recordButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (recorder == null) {
recorder = new MediaRecorder();
}
stopped=false;
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/sdcard/sample.3gp");
recorder.setMaxDuration(MAX_DURATION);
//Progressbar
pb.setMax(MAX_DURATION);
pb.setProgressTintList(ColorStateList.valueOf(Color.WHITE));
new CountDownTimer(MAX_DURATION, 250) {
public void onTick(long millisUntilFinished) {
pb.setProgress(pb.getProgress() + 250);
}
public void onFinish() {
}
}.start();
Tout cela se passe dans une boîte de dialogue, alors comment puis-je effacer le contenu de la boîte de dialogue de sorte que la barre de progression remonte à sa valeur par défaut.
On dirait que vous ajoutez 250 au progrès chaque fois. Vous devrez peut-être enregistrer la progression lorsque vous annulez l'audio et la définir à l'endroit où elle s'est arrêtée lorsque vous recommencez. –