[英]Android Media Recorder start failed exception
我在 android 中遇到媒体录音机问题。我正在录制与 LG P500 配合良好的音频,但相同的代码不适用于 Samsung GT - S5360。 由于启动失败 -22,我收到错误消息。
这是我正在使用的代码:
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 {
recorder.prepare();
recorder.start();
} catch (Exception e) { Log.d(TAG, "Exception : " + e); }
调试时在 logcat 中得到 null 的原因。
请给我一些解决方案。
我遇到了同样的问题,我尝试从 Play 商店安装录音机进行检查。 它也不允许我录制 VOICE_CALL。 从那以后我意识到一些设备制造商不支持这一点。 因此,如果设备不支持 VOICE_CALL,请使用 MIC 进行录音。
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);
根据实际张贴者的评论......他在评论中提出了他的答案。 把它变成一个实际的答案,希望它能帮助别人:
OP 添加了以下权限,他的代码对他来说效果很好:
<uses-permission android:name="android.permission.STORAGE" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.