2017-02-15 13 views
0

例外をスローするコードの一部:アンドロイドMediaRecorder - IllegalStateExceptionが

と私はこの例外を取得しています:

E/MediaRecorder: start failed: -38 
W/System.err: java.lang.IllegalStateException 
W/System.err:  at android.media.MediaRecorder.start(Native Method) 
W/System.err:  at com.example.amit.recording.RecordService.startRecording(RecordService.java:280) 
W/System.err:  at com.example.amit.recording.RecordService.onStartCommand(RecordService.java:141) 
W/System.err:  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3422) 
W/System.err:  at android.app.ActivityThread.access$2200(ActivityThread.java:181) 
W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1572) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
W/System.err:  at android.os.Looper.loop(Looper.java:145) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:6117) 
W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
W/System.err:  at java.lang.reflect.Method.invoke(Method.java:372) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

"recorder.start()" これを引き起こしています。 "無効な状態で呼び出しを停止:0" btw - マニフェストに必要なすべての権限を持っています。ありがとう!!

EDIT

iが追加 "のThread.sleep(2000);" & "start()"の前に3gpファイルを正しいパスに保存しましたが、stop()のstart()に&という例外があります。なぜそれが起こっているのですか?

+0

ファイルパスに問題があると思われます。 Envirement.getExternalStorage()+ File.seperator + "test.3gp";完全パスを使用します。また、ストレージのアクセス許可を確認してください。 –

+0

パスは大丈夫です、ストレージ権限を持っています:) – Jahrk

答えて

0

22を超えるターゲットを使用している場合は、実行時アクセス許可を実装する必要があります。アンドロイドで実行時アクセス許可を実装する方法については、See hereをご覧ください。

+0

これは問題のようです。 – Jahrk

+0

ファイルのパスをチェックし、デフォルトの出力行を置き換えてください。 'mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);' –

+0

は動作しません、試してくれてありがとうございます。私は質問を編集しました。 – Jahrk

関連する問題