Я хочу записать видео с внешней камеры по классам MediaRecorder
и Camera
(я знаю, что это устарело). Однако после запуска рекордера я получаю illegalStateException
с этим журналом: start failed: -38
что означает код -38??
Вот мой код:
private void initRecorder() {
int videoWidth = mCamera.getParameters().getPreviewSize().width;
int videoHeight = mCamera.getParameters().getPreviewSize().height;
mCamera.unlock();
recorder = new MediaRecorder();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
CamcorderProfile cpHigh = CamcorderProfile.get(Integer.valueOf(getFrontFacingCameraId(manager)), CamcorderProfile.QUALITY_HIGH);
recorder.setProfile(cpHigh);
recorder.setOutputFile("/sdcard/videocapture_example.mp4");
recorder.setMaxDuration(50000); // 50 seconds
recorder.setMaxFileSize(5000000); // Approximately 5 megabytes
recorder.setVideoSize(videoWidth, videoHeight);
prepareRecorder();
}
private void prepareRecorder() {
recorder.setPreviewDisplay(mCameraPreview.getHolder().getSurface());
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
finish();
}
}