2015-10-05 1 views
1

Je veux utiliser le mediarecorder dans mon application pour enregistrer la voix. Je fais exactement ce qui est décrit sous http://developer.android.com/reference/android/media/MediaRecorder.html mais le exception est toujours jeté dans la méthode start(). Le code doit être très bien, comme je l'ai aussi essayé l'exemple de code appelé Mediarecorder de google mais j'obtenir le même exception:Android: Mediarecoder lance IllegalStateException dans start()

mRecorder = new MediaRecorder(); 
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
mRecorder.setOutputFile(mFileName); 
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

    try { 
     mRecorder.prepare(); 
    } catch (IOException e) { 
     Log.e(TAG, "prepare() failed"); 
    } 
    mRecorder.start(); 

J'ai déjà ajouté les autorisations (android.permission.WRITE_EXTERNAL_STORAGE and android.permission.RECORD_AUDIO) au AndroidManifest.xml, et je commence l'application sur mon smartphone connecté.

Est-ce que quelqu'un sait ce qui pourrait causer le Exception et ce qu'il faut faire?

+0

Étudiez le cycle de vie de MediaRecorder. – Kedarnath

+0

fournir les journaux montrant l'exception d'état illégal –

Répondre

1

Merci pour vos commentaires. J'ai été capable de résoudre le problème. J'avais en fait un mRecorder.release() manquant et il semble donc que la méthode start ait été appelée deux fois.