2012-04-04 107 views
1

我在android中遇到媒体记录器问题。我正在录制与LG P500配合使用的音频,但是相同的代码在Samsung GT-S5360上不起作用。由于启动失败,我收到错误-22。Android Media Recorder启动失败异常

这是我使用的代码:

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中为空。

请给我一些解决方案。

+0

任何代码或logcat将不胜感激。我们不能提供这样的解决方案。 – 2012-04-04 08:54:16

+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); 尝试 { \t recorder.prepare(); \t recorder.start(); } 赶上(例外五) { \t Log.d(TAG, “异常:” + E) } – 2012-04-04 09:05:57

+2

最后,我发现经过长时间搜索的溶液,我添加<使用的许可机器人:名称=“机器人.permission.STORAGE“/>权限,现在我的代码运行良好。 – 2012-04-04 11:26:24

回答

-2

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

的OP添加以下权限和他的代码工作的很好他:

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

+0

)这是已弃用或不存在。 – wieczorek1990 2016-04-14 14:13:34

1

的许可后,由运为没有工作建议我,可能是因为它不存在:)

如果您遇到此错误,请检查您设置媒体记录器的方式。在我的情况下,它只在某些设备上失败。我做了所有的设备上运行这个操作系统版本> 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

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

相关问题