Android Ошибка запуска MediaRecorder: -38 - PullRequest
0 голосов
/ 19 марта 2020

Я хочу записать видео с внешней камеры по классам 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();
    }
}
...