Android Media Recorder启动失败的异常

时间:2012-04-04 08:51:34

标签: android audio mediarecorder

我在android中遇到了媒体录制器的问题。我正在录制一个与LG P500配合良好的音频,但相同的代码不适用于三星GT - S5360。我因为开始失败而得到错误-22。

这是我正在使用的代码:

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中将cause变为null时。

请建议我解决一下。

3 个答案:

答案 0 :(得分:1)

操作建议的权限对我不起作用,可能是因为它不存在:)

如果您收到此错误,请检查您设置介质记录器的方式。在我的情况下,它只在一些设备中失败了。我正在为运行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);

答案 1 :(得分:0)

我遇到了同样的问题,我尝试从游戏商店安装录音机进行检查。它也不允许我录制VOICE_CALL。由此我意识到一些设备制造商不支持这一点。因此,如果设备不支持VOICE_CALL,请使用MIC进行录制。

答案 2 :(得分:-2)

根据实际海报的评论......他在评论中提出了答案。把它变成一个实际的答案,希望它能帮助别人:

OP增加了以下许可,他的代码对他很有用:

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