본문 바로가기
@capgo/camera-preview 미디어 오픈 소스

카메라 프리뷰 Capacitor 플러그인

커스터마이즈 가능한 컨트롤과 캡처 기능을 갖춘 라이브 카메라 피드 오버레이

설치

bun add @capgo/camera-preview bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/camera-preview
  • pnpm add @capgo/camera-preview
  • yarn add @capgo/camera-preview

가이드

Capacitor에서 Camera Preview 사용하는 법

기기에서 테스트하기

Capgo 앱을 다운로드한 후 QR code을 스캔하세요.

Camera Preview 플러그인 미리보기 QR code

@capgo/camera-preview 사용 중

CameraPreview 플러그인의 메인 인터페이스입니다.

설치

bun add @capgo/camera-preview
bunx cap sync

bunx cap sync 플러그인의 네이티브 code를 네이티브 프로젝트에 복사합니다. 플러그인을 업그레이드할 때마다 다시 실행하세요.

가져오기

import { CameraPreview } from '@capgo/camera-preview';

API 한눈에 보기

메서드 설명
start 카메라 프리뷰를 시작합니다.
stop 카메라 프리뷰를 중지합니다.
capture 카메라로 사진을 촬영합니다.
captureSample 카메라 프리뷰 스트림에서 단일 프레임을 캡처합니다.
startBarcodeScanner 활성 카메라 프리뷰에서 바코드 스캔을 시작합니다.
stopBarcodeScanner 카메라 프리뷰를 계속 실행한 채로 바코드 스캔을 중지합니다.
getSupportedFlashModes 활성 카메라에서 지원하는 플래시 모드를 가져옵니다.
setAspectRatio 카메라 프리뷰의 종횡비를 설정합니다.
getAspectRatio 카메라 프리뷰의 현재 종횡비를 가져옵니다.
setGridMode 카메라 프리뷰 오버레이의 그리드 모드를 설정합니다.
getGridMode 카메라 프리뷰 오버레이의 현재 그리드 모드를 가져옵니다.
checkPermissions 시스템 대화 상자를 띄우지 않고 현재 카메라(및 선택 사항인 마이크) 권한 상태를 확인합니다.
requestPermissions 카메라(및 선택 사항인 마이크) 권한을 요청합니다. 이미 권한이 허용되었거나 거부된 경우, 요청 없이 현재 상태를 반환합니다. 만약 showSettingsAlert 값이 true이고 권한이 거부된 경우, 사용자를 앱 설정으로 안내하는 플랫폼별 알림이 표시됩니다.
getHorizontalFov 활성화된 카메라의 수평 시야각(FoV)을 가져옵니다. 참고: 일부 기기에서는 추정치일 수 있습니다.
getSupportedPictureSizes 모든 카메라에서 지원하는 사진 크기를 가져옵니다.
setFlashMode 활성화된 카메라의 플래시 모드를 설정합니다.
flip 전면 카메라와 후면 카메라를 전환합니다.
setOpacity 카메라 프리뷰의 불투명도를 설정합니다.
stopRecordVideo 진행 중인 비디오 녹화를 중지합니다.
startRecordVideo 비디오 녹화를 시작합니다.
setVideoQuality 활성화된 카메라 세션의 비디오 녹화 품질을 설정합니다.
getVideoQuality 현재 비디오 녹화 품질을 가져옵니다.
getSupportedVideoQualities 활성화된 카메라가 지원하는 비디오 품질을 반환합니다.
setVideoCodec 녹화 시 사용할 비디오 코덱을 설정합니다.
getVideoCodec 현재 녹화에 사용 중인 비디오 코덱을 가져옵니다.
getSupportedVideoCodecs 활성화된 카메라가 지원하는 비디오 코덱을 반환합니다.
isVideoStabilizationSupported 활성화된 카메라가 비디오 손떨림 보정(stabilization)을 지원하는지 확인합니다.
getSupportedVideoStabilizationModes 활성화된 카메라가 지원하는 비디오 손떨림 보정 모드를 반환합니다.
getVideoStabilizationMode 현재 설정된 비디오 손떨림 보정 모드를 가져옵니다.
setVideoStabilizationMode 녹화 시 사용할 비디오 손떨림 보정 모드를 설정합니다. 녹화 중에는 변경할 수 없으며, 다음을 videoStabilizationMode 에서 startRecordVideo() 전달할 수도 있습니다.
isRunning 카메라 프리뷰가 현재 실행 중인지 확인합니다.
getAvailableDevices 사용 가능한 모든 카메라 장치를 가져옵니다.
getZoom 최소/최대 줌 상태 및 현재 렌즈 정보를 가져옵니다.
getZoomButtonValues 빠른 전환을 위한 줌 버튼 값을 반환합니다. - iOS/Android: 초광각 사용 가능 시 0.5, 광각 사용 가능 시 1과 2, 망원 사용 가능 시 3 포함 - Web: 지원되지 않음.
setZoom 카메라의 줌 레벨을 설정합니다.
getFlashMode 현재 플래시 모드를 가져옵니다.
setDeviceId 활성 카메라를 지정된 카메라로 전환합니다. deviceId.
getDeviceId 현재 바인딩된 카메라 장치의 ID를 가져옵니다. Android에서 물리 렌즈 요청이 논리 카메라로 폴백되면, 바인딩된 논리 카메라 ID를 반환합니다.
getPreviewSize 현재 프리뷰 크기와 위치를 가져옵니다.
setPreviewSize 프리뷰 크기와 위치를 설정합니다.
setFocus 프리뷰 내 특정 지점에 카메라 포커스를 설정합니다.
deleteFile Deletes a file at the given absolute path on the device. Use this to quickly clean up temporary images created with storeToFile웹에서는 지원되지 않으며 다음 오류가 발생합니다.
getSafeAreaInsets 기기의 세이프 에어리어(safe area) 인셋을 가져옵니다. 방향에 따른 노치/카메라 컷아웃 인셋과 현재 방향을 반환합니다. 세로 모드에서는 상단 인셋(상단 노치)을, 가로 모드에서는 좌측 인셋(측면 노치)을 반환합니다. 이는 최신 스마트폰의 컷아웃 영역(노치, 펀치홀 등)을 정확히 타겟팅합니다.
getOrientation 현재 기기의 방향을 크로스 플랫폼 형식으로 가져옵니다.
getExposureModes 활성화된 카메라가 지원하는 노출 모드를 반환합니다. 모드에는 'locked', 'auto', 'continuous', 'custom'이 포함될 수 있습니다.
getExposureMode 현재 노출 모드를 반환합니다.
setExposureMode 노출 모드를 설정합니다.
getExposureCompensationRange 지원되는 노출 보정(EV bias) 범위를 반환합니다.
getExposureCompensation 현재 노출 보정(EV bias) 값을 반환합니다.
setExposureCompensation 노출 보정(EV bias)을 설정합니다. 값은 허용 범위 내로 제한됩니다.
getWhiteBalanceModes 활성화된 카메라가 지원하는 화이트 밸런스 모드를 반환합니다. 모드에는 'AUTO', 'LOCK', 'CONTINUOUS'가 포함될 수 있습니다. CUSTOM 수동 게인(manual gains) 지원이 구현될 때까지 목록에 표시되지 않습니다.
getWhiteBalanceMode 현재 화이트 밸런스 모드를 반환합니다.
setWhiteBalanceMode 화이트 밸런스 모드를 설정합니다. CONTINUOUS 자동 화이트 밸런스를 유지합니다 (권장 사항; 따뜻하거나 노란 색조를 방지함), LOCK 현재 게인을 고정합니다. AUTO 일회성 조정을 수행합니다. CUSTOM 수동 게인 지원 기능이 구현될 때까지 예약 및 거부됩니다.
getSupportedVideoFrameRates 현재 포맷에서 활성화된 카메라가 지원하는 비디오 프레임 레이트 목록을 반환합니다. 지원되는 값은 선택한 카메라, 렌즈 및 비디오 품질에 따라 달라집니다.
getVideoFrameRate 활성화된 카메라에 설정된 비디오 프레임 레이트를 반환합니다. Android의 경우 저조도 환경이나 발열 상황에서는 실제 녹화 프레임 레이트가 달라질 수 있습니다.
setVideoFrameRate 활성화된 카메라 세션의 목표 비디오 프레임 레이트를 설정합니다. 다음을 전달하는 것을 권장합니다. frameRate 대상 startRecordVideo() 녹화를 시작할 때 사용하세요. 지원되지 않는 값은 명확한 에러와 함께 거부됩니다.

예시

start()

카메라 프리뷰를 시작합니다.

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.start({ parent: 'parent' });
console.log(result);

stop()

카메라 프리뷰를 중지합니다.

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.stop();

capture()

카메라로 사진을 촬영합니다.

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.capture({ height: 1920 });
console.log(result);

captureSample()

카메라 프리뷰 스트림에서 단일 프레임을 캡처합니다.

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.captureSample({
  quality: 85,
  mirrorFrontCamera: false,
});
console.log(result);

startBarcodeScanner()

활성 카메라 프리뷰에서 바코드 스캔을 시작합니다.

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.startBarcodeScanner();

stopBarcodeScanner()

카메라 프리뷰를 계속 실행한 채로 바코드 스캔을 중지합니다.

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.stopBarcodeScanner();

위 표에는 56개의 핵심 메서드가 나열되어 있습니다. Listener 및 버전 헬퍼, 그리고 각 메서드의 전체 계약(contract)에 대한 상세 내용은 GitHub 리포지토리.

이벤트 수신

addListener 핸들을 반환합니다. 호출하세요 handle.remove() 화면이 언마운트될 때, 또는 CameraPreview.removeAllListeners() 모든 리스너를 해제하려면.

전체 레퍼런스

@capgo/camera-preview 사용하기 계속하기

사용 중이라면 @capgo/camera-preview 사용하기 네이티브 미디어 및 인터페이스 동작을 계획하려면, 이를 다음 항목과 연결하세요: @capgo/camera-preview @capgo/camera-preview의 구현 세부 사항은 시작하기 Getting Started의 구현 상세 내용은 @capgo/capacitor-live-activities 사용 @capgo/capacitor-live-activities 사용에서의 네이티브 기능, @capgo/capacitor-live-activities @capgo/capacitor-live-activities의 구현 세부 사항 및 @capgo/capacitor-video-player 사용 @capgo/capacitor-video-player.를 사용한 네이티브 기능

자주 묻는 질문

Camera Preview 플러그인 FAQ

Capacitor 앱에 Camera Preview 플러그인을 어떻게 설치하나요?

"bun add @capgo/camera-preview" (또는 "npm install @capgo/camera-preview")를 실행한 다음, "bunx cap sync"를 실행하여 iOS 및 Android 프로젝트에 네이티브 code가 반영되도록 합니다. 그 후 앱의 code에서 "@capgo/camera-preview"를 통해 import 하세요.

@capgo/camera-preview가 React, Vue, Angular와 호환되나요?

네. Camera Preview는 Capacitor 패키지이므로 Ionic, React, Vue, Angular, Svelte 및 일반 JavaScript를 포함하여 Capacitor에서 실행되는 모든 웹 프레임워크와 호환됩니다.

@capgo/camera-preview은 어떤 Capacitor 버전을 지원하나요?

Capgo 플러그인은 Capacitor의 메이저 버전을 따릅니다. 사용 중인 Capacitor 메이저 버전과 일치하는 플러그인 메이저 버전을 사용하세요 (예: Capacitor 8에는 플러그인 v8). 유지 관리되는 버전은 GitHub README의 호환성 표에서 확인할 수 있습니다.

@capgo/camera-preview는 무료이며 오픈 소스인가요?

네. code 소스 코드는 GitHub의 https://github.com/Cap-go/capacitor-camera-preview/ 에 공개되어 있으며, npm에서 무료로 설치할 수 있습니다. 버그 리포트와 pull request는 언제나 환영합니다.

App Store 심사 없이 Camera Preview를 사용하는 code를 업데이트할 수 있나요?

플러그인을 설치하거나 업그레이드하면 네이티브 code가 변경되므로 새로운 스토어 빌드가 필요합니다. 그 이후에는 플러그인을 호출하는 JavaScript, HTML, CSS 변경 사항을 Capgo live updates로 즉시 배포할 수 있습니다.

앱 심사 대기 없이 Camera Preview 변경 사항을 즉시 배포하세요

스토어 빌드에 플러그인이 포함되면, Capgo live updates로 JavaScript, HTML, CSS 변경 사항을 몇 분 만에 사용자에게 푸시할 수 있습니다.

Capgo로 시작하기