-19 android runtime_error ai_generated true

java.lang.RuntimeException:启动失败。E/MediaRecorder:启动失败:-19

java.lang.RuntimeException: start failed. E/MediaRecorder: start failed: -19

ID: android/media-recorder-start-failed

其他格式: JSON · Markdown 中文 · English
85%修复率
85%置信度
1证据数
2023-02-28首次发现

版本兼容性

版本状态引入弃用备注
Android 12 (API 31) active
Android 13 (API 33) active

根因分析

MediaRecorder 由于缺少音频/视频源权限、输出文件路径无效或编码器/格式组合不受支持而无法启动。

English

MediaRecorder cannot start due to missing audio/video source permissions, invalid output file path, or unsupported encoder/format combination.

generic

官方文档

https://developer.android.com/reference/android/media/MediaRecorder

解决方案

  1. 确保已授予所有必要权限:在 AndroidManifest.xml 中添加 <uses-permission android:name="android.permission.RECORD_AUDIO" /> 和 <uses-permission android:name="android.permission.CAMERA" />,并在运行时请求。
  2. 使用应用程序外部缓存目录中的有效输出文件路径。示例:File outputFile = new File(context.getExternalCacheDir(), "recording.mp4"); mediaRecorder.setOutputFile(outputFile.getAbsolutePath());
  3. 将音频和视频编码器设置为支持的值。示例:mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

无效尝试

常见但无效的做法:

  1. 75% 失败

    Video recording with audio requires both CAMERA and RECORD_AUDIO permissions; missing audio permission causes start failure.

  2. 80% 失败

    MediaRecorder requires a writable file path; using a non-writable location leads to error -19.

  3. 70% 失败

    Not all devices support H.265; falling back to H.264 is safer but the error persists if not handled.