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

- **ID:** `android/media-recorder-start-failed`
- **领域:** android
- **类别:** runtime_error
- **错误码:** `-19`
- **验证级别:** ai_generated
- **修复率:** 85%

## 根因

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

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Android 12 (API 31) | active | — | — |
| Android 13 (API 33) | active | — | — |

## 解决方案

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);
   ```

## 无效尝试

- **** — Video recording with audio requires both CAMERA and RECORD_AUDIO permissions; missing audio permission causes start failure. (75% 失败率)
- **** — MediaRecorder requires a writable file path; using a non-writable location leads to error -19. (80% 失败率)
- **** — Not all devices support H.265; falling back to H.264 is safer but the error persists if not handled. (70% 失败率)
