MediaRecorder ошибка фронтальной камеры, остановка видео - PullRequest
0 голосов
/ 10 сентября 2018

Идентификатор камеры равен 1 для передней камеры и 0 для задней камеры. Хорошо, я пишу код для использования как камеры, но когда я записываю и меняю камеру в финальном видео, видео останавливается, когда я меняю камеру ... Любое предложение?

вот код:

    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    mMediaRecorder.setVideoEncodingBitRate(1000000);
    mMediaRecorder.setAudioEncodingBitRate(16);
    mMediaRecorder.setAudioSamplingRate(44100);
    mMediaRecorder.setVideoFrameRate(30);
    mMediaRecorder.setAudioSamplingRate(16000);
    mMediaRecorder.setVideoSize(imageDimension.getWidth(), imageDimension.getHeight());
    mMediaRecorder.setOutputFile(getFilePath());
    mMediaRecorder.setOrientationHint(90);

    mMediaRecorder.prepare();


        setupMediaRecorder();
        SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
        surfaceTexture.setDefaultBufferSize(imageDimension.getWidth(), imageDimension.getHeight());
        Surface recordSurface = mMediaRecorder.getSurface();
        Surface previewSurface = new Surface(surfaceTexture);
        captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
        captureRequestBuilder.addTarget(recordSurface);
        captureRequestBuilder.addTarget(previewSurface);


        cameraDevice.createCaptureSession(Arrays.asList(previewSurface,recordSurface), new CameraCaptureSession.StateCallback() {
            @Override
            public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
                try {
                    cameraCaptureSession.setRepeatingRequest(captureRequestBuilder.build(), null, null);
                } catch (CameraAccessException e) {
                    e.printStackTrace();
                }
            }


            @Override
            public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {


            }
        }, null);

    } catch (IOException e) {
        e.printStackTrace();
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }


}

как я могу записать обе камеры и изменить их во время видео без остановки видео?

Большое спасибо за любой ответ.

...