You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 8.1.0录像报错:MediaRecorder.start()失败-19求助

解决Android 8.1.0中MediaRecorder.start()报错start failed: -19的问题

嘿,这个错误我在适配Android 8.x版本时也碰到过,错误码-19对应的是MEDIA_ERROR_INVALID_STATE,说白了就是调用start()时,MediaRecorder没处在正确的就绪状态——要么是配置漏了关键步骤,要么是参数不兼容,也可能是资源冲突导致的。结合你贴的代码片段,我给你梳理几个核心排查方向:

先盯紧prepareRecorder()这个核心方法

这个方法是MediaRecorder能正常启动的前提,步骤顺序和配置项一个都不能错:

  • 必须先设置音频源和视频源,顺序不能搞反:
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    
  • 输出格式优先用MPEG_4,Android 8.1对这个格式兼容性最好,别用太冷门的格式:
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    
  • 编码器要和输出格式匹配,音频用AAC、视频用H264基本不会踩坑:
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    
  • 一定要设置合法的输出文件路径,而且得确保APP有WRITE_EXTERNAL_STORAGE权限(动态申请也不能忘):
    mMediaRecorder.setOutputFile(getOutputMediaFile().getAbsolutePath());
    
  • 最后必须调用mMediaRecorder.prepare(),而且要捕获这个方法的IO异常,很多时候准备失败的隐藏错误都在这里,比如文件路径无效、权限不足:
    try {
        mMediaRecorder.prepare();
    } catch (IOException e) {
        Log.e(TAG, "Recorder准备失败: " + e.getMessage());
        // 这里一定要处理,别直接跳过
    }
    

权限检查不能走形式

你代码里的checkAvailabity()得真的把该要的权限都查一遍:Android 8.1需要动态申请RECORD_AUDIO、CAMERA、WRITE_EXTERNAL_STORAGE这三个权限,缺一个都可能导致录制失败。而且就算之前申请过,也要在启动录制前再确认一遍权限状态,避免用户中途撤销了权限。

相机资源别冲突

看你代码里有预览相关的标记isPriviewVideoClicked,如果之前有开启相机预览,一定要在启动录制前先停止预览、释放相机资源。Android 8.1里相机和MediaRecorder的资源竞争特别容易导致状态错误,最好是录制前把相机预览停掉,等录制结束再重新初始化预览。

闪光灯操作要注意时机

你调用了flashOn(),别在MediaRecorder准备好之前就单独操作闪光灯,最好用MediaRecorder自带的闪光灯设置:

mMediaRecorder.setFlashMode(MediaRecorder.FlashMode.TORCH);

这样能避免和MediaRecorder的状态冲突,比单独调用相机闪光灯API更安全。

状态标记要靠谱

你的isRecordVideoClicked、isPriviewVideoClicked这些标记,要确保它们的状态是正确的,比如启动录制前,没有其他操作占用了MediaRecorder或者相机资源,别因为标记逻辑出错导致重复初始化或者状态混乱。

最后给个调试小技巧:在prepareRecorder()的每一步配置后都打个日志,看看哪一步出了问题,比如输出格式设置后打印一下,编码器设置后也打印,这样能快速定位到配置环节的问题。

内容的提问来源于stack exchange,提问作者Android dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:59:18