我想使用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();
}
}