फेंकता है मैं एक साधारण एंड्रॉइड ऑडियो रिकॉर्डर विकसित करने की कोशिश कर रहा हूं। सब कुछ ठीक बनाता है और यह एंड्रॉइड डिवाइस पर भी ठीक चलता है। ऐसा लगता है जैसे मैं रिकॉर्डिंग शुरू कर सकता हूं लेकिन जब मैं इसे रोकना चाहता हूं तो यह एक अवैध स्टेटस एक्सेप्शन फेंकता है। मुझे गलती नहीं मिल रही है।एंड्रॉइड - MediaRecorder अवैधस्टेटेसेप्शन
public class VoiceRecorder {
MediaRecorder recorder= new MediaRecorder();
static Context cont;
public void startRecord(Context context) throws IllegalStateException, IOException{
cont = context;
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(cont.getFilesDir()+"/recordings.3gp");
recorder.prepare();
recorder.start();
}
public void stopRecording(Context context) {
cont = context;
recorder.stop();
recorder.release();
File file = new File (cont.getFilesDir()+"/recordings.3gp");
UploadFile.uploadFile("recordings.3gp", file);
recorder = null;
}
}
मैं के साथ यह ट्रिगर करना चाहते हैं:: यहाँ कोड है
VoiceRecorder vr = नए VoiceRecorder();
vr.startRecord (cont);
vr.stopRecording (cont);
जब शुरू Logcat कहते बुला: (क्या ठीक किया जाना चाहिए)
09-06 22:56:42.830: D/AudioHardwareMSM72XX(123): audpre_index = 0, tx_iir_index = 0
09-06 22:56:42.840: D/HTC Acoustic(123): msm72xx_enable_audpre: 0x0000
09-06 22:56:42.850: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone
09-06 22:56:42.850: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001
09-06 22:56:42.850: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone
09-06 22:56:42.860: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001
09-06 22:56:42.870: D/AudioFlinger(123): setParameters(): io 3, keyvalue routing=262144;vr_mode=0, tid 156, calling tid 123
09-06 22:56:42.870: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone
09-06 22:56:42.880: D/AudioHardwareMSM72XX(123): audpre_index = 0, tx_iir_index = 0
09-06 22:56:42.880: D/HTC Acoustic(123): msm72xx_enable_audpre: 0x0000
09-06 22:56:42.880: I/AudioHardwareMSM72XX(123): do input routing device 40000
09-06 22:56:42.880: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone
09-06 22:56:42.890: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001
लेकिन जब मैं रोक फोन:
09-06 22:59:52.440: E/MediaRecorder(1069): stop called in an invalid state: 1
09-06 22:59:52.440: W/System.err(1069): java.lang.IllegalStateException
09-06 22:59:52.460: W/System.err(1069): at android.media.MediaRecorder.stop(Native Method)
09-06 22:59:52.460: W/System.err(1069): at de.spyapp.VoiceRecorder.stopRecording(VoiceRecorder.java:33)
09-06 22:59:52.460: W/System.err(1069): at de.spyapp.CheckCMD.checkCMD(CheckCMD.java:30)
09-06 22:59:52.460: W/System.err(1069): at de.spyapp.AppActivity$2.run(AppActivity.java:44)
09-06 22:59:52.460: W/System.err(1069): at java.lang.Thread.run(Thread.java:1096)
दो से अधिक हाइपरलिंक्स पोस्ट करने की अनुमति नहीं है। कुछ और पढ़ते हैं: - http://stackoverflow.com/questions/11852852/stop-called-in-an-invalid-state-1 - http: //www.benmccann।कॉम/डेव-ब्लॉग/एंड्रॉइड-ऑडियो-रिकॉर्डिंग-ट्यूटोरियल/ – TheMaster42
हम्म मैंने शुरुआत से पहले तैयार किया और मैं 20sec की तरह इंतजार कर रहा हूं जब तक कि मैं स्टॉप –
पर कॉल नहीं करता हूं यह उत्तर 'मीडियाप्लेयर' का संदर्भ दे रहा है लेकिन ओपी 'मीडियाआरकॉर्डर' के बारे में पूछ रहा है ' –