2012-04-04 8 views
1

Androidのメディアレコーダーに問題があります。 LG P500とうまく動作するオーディオを録音していますが、同じコードがSamsung GT-S5360で動作していません。私はスタートが失敗したのでエラーが出ます-22。Androidメディアレコーダーの開始に失敗しました。

final MediaRecorder recorder = new MediaRecorder(); 
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL‌​); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GP‌​P); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setOutputFile(path); 
try { 
    recorder.prepare(); 
    recorder.start(); 
} catch (Exception e) { Log.d(TAG, "Exception : " + e); } 

をデバッグするにはlogcatにNULLとして原因を得たとき:

これは私が使用していたコードです。

解決策を提案してください。

+0

任意のコードまたはログキャストに感謝します。私たちはそのようなソリューションを提供することはできません。 –

+0

これは私が使用しているコードです: final MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(path); try { \t recorder.prepare(); \t recorder.start(); } キャッチ(例外e) { \t Log.d(TAG、 "例外:" + E)最後 } –

+2

私は<使用許可アンドロイド加え、長い探索の後に解決策を見つけた:名= "アンドロイドを.permission.STORAGE "/>の許可を得て、私のコードはうまくいきました。 –

答えて

-2

実際のポスターのコメントに基づいて、彼はコメントで答えを提案しました。それは他の人に役立つことを期待し、実際の答えにこれを置く:

OPは、次の権限を追加し、彼のコードでは、彼のためによく働い:

<uses-permission android:name="android.permission.STORAGE" />

+0

これは非推奨または存在しません。 – wieczorek1990

1

OPによって提案された許可がために動作しませんでした私はおそらく存在しないからです:)

このエラーが発生した場合は、メディアレコーダーの設定方法を確認してください。私の場合、それはいくつかのデバイスでも失敗しました。私はOSのバージョンを実行しているすべてのデバイスのためにこれをやっていた> API 10:

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);  
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB); 

は、断層運動デバイスがJBを実行していたが、広帯域サポートしていませんでしたので、生/狭帯域に変更する働いたことが判明:

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);  
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
0

私も同じ問題があり、プレイストアからボイスレコーダーをインストールして確認しました。 VOICE_CALLも録音できませんでした。それから、私はいくつかのデバイスメーカーがこれをサポートしていないことに気付きました。したがって、デバイスがVOICE_CALLをサポートしていない場合は、MICで記録してください。

関連する問題