Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Android Java Audiorecorder

Erreur MediaRecorder: stop called in an invalid state: 4

    3 janvier 2020 à 17:58:59

    Bonjour, Je développe un Audio Recorder sur android composé de 3 activités. La première permet juste d’accéder aux deux autres. La deuxième sert de support pour le recorder et la troisième reprends les audios dans le stockage du téléphone et les affiches pour les écouter.

    Lors de l’arrêt de l'enregistrement une erreur fait crasher l'application :  Erreur MediaRecorder: stop called in an invalid state: 4

    Malgré mes recherches je n'ai pas encore trouvés la cause de l'erreur.

    Je vous remercie d'avance pour votre aide.

    Ci-dessous le code de ma deuxième activité.

    public class SecondActivity extends AppCompatActivity {
    
        private Button startRecord, stopRecord;
        private MediaRecorder myAudioRecorder;
        private String outputFile;
        public static final int PERMISSIONS_REQUEST = 0;
        private int recordNbr = 1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            startRecord = (Button) findViewById(R.id.buttonStart);
            stopRecord = (Button) findViewById(R.id.buttonStop);
            stopRecord.setEnabled(false);
    
            outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording/"+recordNbr+".3gp";
            myAudioRecorder = new MediaRecorder();
            myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
            myAudioRecorder.setOutputFile(outputFile);
    
            startRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    try {
                        myAudioRecorder.prepare();
                        myAudioRecorder.start();
                    }catch (IllegalStateException ise){
                        //Make something
                    }catch(IOException ioe){
                        //make something
                    }
    
                    startRecord.setEnabled(false);
                    stopRecord.setEnabled(true);
    
                    Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_LONG).show();
                }
            });
            stopRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    stop();
                }
            });
        }
    
        public void stop(){
            myAudioRecorder.stop();
    
            startRecord.setEnabled(true);
            stopRecord.setEnabled(false);
            Toast.makeText(getApplicationContext(), "Audio Record have been stored", Toast.LENGTH_LONG).show();
            recordNbr = recordNbr + 1;
        }
    
        public void menu(View view) {
    
            // Create an intent for the activity
            Intent i = new Intent(this, MainActivity.class);
    
            // Start the activity
            startActivity(i);
    
        }
    
    }
    

    • Partager sur Facebook
    • Partager sur Twitter

    Erreur Android Java Audiorecorder

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown