首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android Media Recorder启动失败异常

Android Media Recorder启动失败异常
EN

Stack Overflow用户
提问于 2012-04-04 16:51:34
回答 3查看 17.6K关注 0票数 2

我在android中的媒体录制器有问题。我收到错误,因为启动失败-22。

这是我使用的代码:

代码语言:javascript
运行
复制
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。

请给我一些建议。

EN

回答 3

Stack Overflow用户

发布于 2017-01-11 14:10:06

我也遇到了同样的问题,我试着从play商店安装了一个录音机来检查。它也不允许我录制VOICE_CALL。由此,我意识到一些设备制造商并不支持这一点。因此,如果设备不支持VOICE_CALL,请用麦克风录音。

票数 2
EN

Stack Overflow用户

发布于 2014-10-16 18:04:46

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

如果出现此错误,请检查设置媒体录像机的方式。在我的例子中,它只在一些设备上失败了。我对运行Os version > API 10的所有设备执行此操作:

代码语言:javascript
运行
复制
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);       
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);

事实证明,故障设备正在运行JB,但不支持宽带,因此将其更改为原始/窄带有效:

代码语言:javascript
运行
复制
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);      
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
票数 1
EN

Stack Overflow用户

发布于 2012-06-22 15:29:27

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

OP添加了以下权限,他的代码对他来说工作得很好:

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

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10007834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档