1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
public class EnrNoteVocaleActivity extends Activity {
TextView statut;
int enregistre = 0; // Mouchard... 0: En attente, 1: Enregistre, 2: Enregistrement terminé
MediaRecorder enregistreur;
EditText nomFichier;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.enregistrement_note_vocale);
statut = (TextView)findViewById(R.id.state); // Affiche simplement l'état de l'enregistrement
Button boutonQuitter = (Button) findViewById(R.id.closeButton);
final ImageButton enregistrer = (ImageButton)findViewById(R.id.recordButton); // Toggle enregistrer... stop
nomFichier = (EditText) findViewById(R.id.newVocalNoteEditText); // Saisi par utilisateur
statut.setText(R.string.en_attente_);
enregistreur = new MediaRecorder();
// ******************** Méthodes de contrôle ********************
boutonQuitter.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// Un appui sur le bouton nous fait quitter l'activité et stop l'enregistrement s'il tourne encore
/* if (enregistre == 1) { // On ferme la fenêtre tandis qu'on enregistre encore
arreterEnr();
}*/
finish();
}
});
enregistrer.setOnClickListener(new OnClickListener() {
// Fonction de l'enregistrement de la note vocale
public void onClick(View v) {
if (enregistre == 0) { // 0: en attente, 1: Enregistre, 2: Enr. terminé
String nomNote = new String(nomFichier.getText().toString());
boolean fichierValide = NoteDroidActivity.gestFichiers.validerFichier(nomNote); // On valide que le fichier est conforme dans singleton de gestion de fichiers
if (fichierValide) {
enregistre = 1; // mouchard = on enregistre
statut.setText(R.string.enregistre_); // Message à l'utilisateur "On enregistre"
enregistrer.setImageResource(R.drawable.micro_rouge); // Affiche bouton d'arrêt
enregistrerNote(nomNote); // Fonction d'enregistrement
}
else {
finish(); // Si fichier non valide, on ferme l'activity et on affiche l'alertDialog sous-jacent affiché par
// NoteDroidActivity.gestFichiers.validerFichier(nomNote)
}
}
else if (enregistre == 1) { // Si on est en train d'enregistrer
enregistre = 2; // Mouchard 2 = enr terminé (empêche de réactiver le bouton... évite plantage)
statut.setText(R.string.termin_); // Message "terminé"
enregistrer.setImageResource(R.drawable.micro_blanc); // micro_blanc = bouton inactif
arreterEnr(); // On appelle la fct d'arret
NoteDroidActivity.gestAffichage.afficherFichiers(); // Mise à jour de la liste des fichiers
}
}
});
}
// ******************** Méthodes métier ********************
public void enregistrerNote(String fileName) {
enregistreur.setAudioSource(MediaRecorder.AudioSource.MIC);
enregistreur.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
enregistreur.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// DossierCourant == getExternalFilesDir(null).getAbsolutePath();
enregistreur.setOutputFile(NoteDroidActivity.gestFichiers.getDossierCourant() + File.separator + fileName +".3gp");
try {
enregistreur.prepare();
} catch (IOException e) {
// On affiche le message d'erreur dans une boite de dialogue personnalisée
NoteDroidActivity.gestAffichage.alertDialogAvertissement(getString(R.string.erreur_), e.getLocalizedMessage(), getString(R.string.fermer), null, getResources().getDrawable(R.drawable.exclamation));
}
enregistreur.start();
}
public void arreterEnr() {
enregistreur.stop();
enregistreur.release();
}
@Override
public void onPause() {
super.onPause();
if (enregistre == 1) {
arreterEnr();
enregistre = 0;
}
}
} |
Partager