如何在Camera2 API安卓系统中实现视频录像机?

问题描述 投票:0回答:1

如何实现Camera2 API安卓版的视频录像机?代码将是非常有用的。

java android android-camera2
1个回答
0
投票
public void startRecordingVideo() {
if (null == mCameraDevice || !mTextureView.isAvailable() || null == mPreviewSize) {
  return;
}
try {
  closePreviewSession();
  setUpMediaRecorder();
  SurfaceTexture texture = mTextureView.getSurfaceTexture();
  assert texture != null;
  texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
  mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
  List<Surface> surfaces = new ArrayList<>();
  /**
   * Surface for the camera preview set up
   */
  Surface previewSurface = new Surface(texture);
  surfaces.add(previewSurface);
  mPreviewBuilder.addTarget(previewSurface);
  //MediaRecorder setup for surface
  Surface recorderSurface = mMediaRecorder.getSurface();
  surfaces.add(recorderSurface);
  mPreviewBuilder.addTarget(recorderSurface);
  // Start a capture session
  mCameraDevice.createCaptureSession(surfaces, new CameraCaptureSession.StateCallback() {
    @Override
    public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
      mPreviewSession = cameraCaptureSession;
      updatePreview();
      getActivity().runOnUiThread(() -> {
        mIsRecordingVideo = true;
        // Start recording
        mMediaRecorder.start();
      });
    }
    @Override
    public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
      Log.e(TAG, "onConfigureFailed: Failed");
    }
  }, mBackgroundHandler);
} catch (CameraAccessException | IOException e) {
  e.printStackTrace();
}

}

在这个网站上,有一个你的问题的例子。https:/androidwave.comvideo-recording-with-camera2-api-android。


0
投票

官方的基本视频录制样本在这里。

https:/github.comandroidcamera-samplestreemasterCamera2Video。

© www.soinside.com 2019 - 2024. All rights reserved.