2

我在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 中导致为 null 时。

请建议我一些解决方案。

4

3 回答 3

2

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

于 2017-01-11T06:10:05.773 回答
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);
于 2014-10-16T10:04:46.003 回答
-3

根据实际海报的评论......他在评论中提出了他的答案。将其放入实际答案中,希望对其他人有所帮助:

OP 添加了以下权限,他的代码对他很有效:

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

于 2012-06-22T07:29:27.483 回答