Android의 Camera2API를 사용하여 동영상을 촬영합니다.
3734 단어 AndroidCamera2API
계속
개요
아래의 공식 샘플을 공개했다.
이를 예로 들어 설명하다.
Android Camera2Video Sample
카메라 이미지의 출력 목적지로
사진(정적 이미지)의 경우 ImageReader가 사용됩니다.
비디오의 경우 미디어 레코더를 사용합니다.
MediaRecorder
오디오 및 비디오를 캡처하고 인코딩하는 클래스입니다.
reference : MediaRecorder
사용 방법은 아래의 보도를 참고하십시오.
참고: 매개변수 설정에는 순서가 있습니다.
위반하면 IllegalStateException이 발생합니다.
mediarecorder로 녹화
다음과 같이 미디어 레코더를 생성합니다.
Size videoSize;
String outputFile;
int orientation;
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile(outputFile);
mediaRecorder.setVideoEncodingBitRate(10000000);
mediaRecorder.setVideoFrameRate(30);
mediaRecorder.setVideoSize(videoSize.getWidth(), videoSize.getHeight());
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOrientationHint(orientation);
mediaRecorder.prepare();
녹화 시작
Record 단추 클릭
미디어 레코더를 출력 목표로 삼아 포획을 요청합니다.
previewBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
List<Surface> surfaces = new ArrayList<>();
surfaces.add(previewSurface);
previewBuilder.addTarget(previewSurface);
Surface recorderSurface = mediaRecorder.getSurface();
surfaces.add(recorderSurface);
previewBuilder.addTarget(recorderSurface);
cameraDevice.createCaptureSession(surfaces, cameraCaptureSession.StateCallback, backgroundHandler);
자세한 내용을 확인한 후CameraCaptureSession.StateCallback에서 onConfigured라고 합니다.
이를 계기로 녹화를 시작하다.
CameraCaptureSession.StateCallback() {
@Override
public void onConfigured( CameraCaptureSession cameraCaptureSession) {
mediaRecorder.start();
녹화 종료
Record 버튼을 클릭하여 미디어 Recorder를 중지하고 리소스를 방출합니다.
mediaRecorder.stop();
mediaRecorder.reset();
미디어 레코더 출력 형식
공식 샘플은 MPEG4입니다.
아래와 같이 10가지 정도가 있다.
MediaRecorder.OutputFormat.xxx
Value
Name
Remarks
0
DEFAULT
일
THREE_GPP
이
MPEG_사
삼
AMR_NB
사
AMR_WB
오
AAC_ADIF
육
AAC_ADTS
칠
RTP_AVP
팔
MPEG_2_TS
Added in API level 26
구
WEBM
십일
OGG
Added in API level 29
reference : MediaRecorder.OutputFormat
PEG4는 현재 주류로 아무런 장애도 없다.
근데 선택이 있으면 해보고 싶어요.
기본 설정 프레임을 사용하여 선택합니다.
샘플 코드가github에 발표되었습니다.
https://github.com/ohwada/Android_Samples/tree/master/Camera213
Reference
이 문제에 관하여(Android의 Camera2API를 사용하여 동영상을 촬영합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ohwada/items/4ef112bf6758ceed46c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)