-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
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.
官方文档
https://developer.android.com/reference/android/media/MediaRecorder解决方案
-
确保已授予所有必要权限:在 AndroidManifest.xml 中添加 <uses-permission android:name="android.permission.RECORD_AUDIO" /> 和 <uses-permission android:name="android.permission.CAMERA" />,并在运行时请求。
-
使用应用程序外部缓存目录中的有效输出文件路径。示例:File outputFile = new File(context.getExternalCacheDir(), "recording.mp4"); mediaRecorder.setOutputFile(outputFile.getAbsolutePath());
-
将音频和视频编码器设置为支持的值。示例:mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
无效尝试
常见但无效的做法:
-
75% 失败
Video recording with audio requires both CAMERA and RECORD_AUDIO permissions; missing audio permission causes start failure.
-
80% 失败
MediaRecorder requires a writable file path; using a non-writable location leads to error -19.
-
70% 失败
Not all devices support H.265; falling back to H.264 is safer but the error persists if not handled.