繁体   English   中英

Android Media Recorder 启动失败异常

[英]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_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 的原因。

请给我一些解决方案。

我遇到了同样的问题,我尝试从 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM