Langsung ke konten utama
@capgo/camera-preview Media Open source

Pratinjau Kamera plugin Capacitor

Tampilkan feed kamera live sebagai overlay dengan kontrol dan fitur capture yang bisa dikustomisasi

Instal

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

Panduan

Cara menggunakan Camera Preview di Capacitor

Tes di perangkat

Download aplikasi Capgo, lalu scan QR code.

Link QR preview plugin Camera Preview code

Menggunakan @capgo/camera-preview

Antarmuka utama untuk plugin CameraPreview.

Instal

bun add @capgo/camera-preview
bunx cap sync

bunx cap sync menyalin code native plugin ke dalam proyek native Anda. Jalankan kembali setiap kali melakukan upgrade plugin.

Impor

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

Sekilas tentang API

Metode Deskripsi
start Memulai camera preview.
stop Menghentikan camera preview.
capture Mengambil foto dari kamera.
captureSample Mengambil satu frame dari stream camera preview.
startBarcodeScanner Memulai pemindaian barcode pada camera preview yang aktif.
stopBarcodeScanner Menghentikan pemindaian barcode sambil tetap menjalankan camera preview.
getSupportedFlashModes Mendapatkan mode flash yang didukung oleh kamera aktif.
setAspectRatio Mengatur aspect ratio camera preview.
getAspectRatio Mendapatkan aspect ratio camera preview saat ini.
setGridMode Mengatur mode grid pada overlay camera preview.
getGridMode Mendapatkan mode grid overlay camera preview saat ini.
checkPermissions Mengecek status izin kamera (dan mikrofon, opsional) saat ini tanpa memunculkan dialog sistem.
requestPermissions Meminta izin kamera (dan mikrofon opsional). Jika izin sudah diberikan atau ditolak, status saat ini akan dikembalikan tanpa prompt. Jika showSettingsAlert jika bernilai true dan izin ditolak, peringatan khusus platform akan muncul untuk mengarahkan pengguna ke pengaturan aplikasi.
getHorizontalFov Mendapatkan horizontal field of view (FoV) untuk kamera yang aktif. Catatan: Ini bisa berupa estimasi pada beberapa perangkat.
getSupportedPictureSizes Mendapatkan ukuran foto yang didukung untuk semua kamera.
setFlashMode Mengatur mode flash untuk kamera yang aktif.
flip Beralih antara kamera depan dan belakang.
setOpacity Mengatur opasitas preview kamera.
stopRecordVideo Menghentikan rekaman video yang sedang berjalan.
startRecordVideo Memulai rekaman video.
setVideoQuality Mengatur kualitas rekaman video untuk sesi kamera yang aktif.
getVideoQuality Mendapatkan kualitas rekaman video saat ini.
getSupportedVideoQualities Mengembalikan kualitas video yang didukung oleh kamera aktif.
setVideoCodec Mengatur video codec yang digunakan saat merekam.
getVideoCodec Mendapatkan video codec yang sedang digunakan untuk merekam.
getSupportedVideoCodecs Mengembalikan video codec yang didukung oleh kamera aktif.
isVideoStabilizationSupported Memeriksa apakah stabilisasi video didukung oleh kamera aktif.
getSupportedVideoStabilizationModes Mengembalikan mode stabilisasi video yang didukung kamera aktif.
getVideoStabilizationMode Mendapatkan mode stabilisasi video saat ini.
setVideoStabilizationMode Mengatur mode stabilisasi video saat merekam. Tidak dapat diubah saat proses rekaman sedang berjalan. Anda juga dapat mengirimkan videoStabilizationMode di startRecordVideo() opsi.
isRunning Memeriksa apakah preview kamera sedang berjalan.
getAvailableDevices Mengambil semua perangkat kamera yang tersedia.
getZoom Mendapatkan status zoom saat ini, termasuk min/max dan info lensa saat ini.
getZoomButtonValues Mengembalikan nilai tombol zoom untuk perpindahan cepat. - iOS/Android: menyertakan 0.5 jika ultra-wide tersedia; 1 dan 2 jika wide tersedia; 3 jika telephoto tersedia - Web: tidak didukung.
setZoom Mengatur level zoom kamera.
getFlashMode Mendapatkan mode flash saat ini.
setDeviceId Mengalihkan kamera aktif ke kamera dengan spesifikasi tertentu deviceId.
getDeviceId Mendapatkan ID perangkat kamera yang sedang terhubung. Pada Android, jika permintaan lensa fisik beralih ke kamera logis, ini akan mengembalikan ID kamera logis yang terhubung.
getPreviewSize Mendapatkan ukuran dan posisi preview saat ini.
setPreviewSize Mengatur ukuran dan posisi preview.
setFocus Mengatur fokus kamera ke titik tertentu pada preview.
deleteFile Menghapus file pada path absolut tertentu di perangkat. Gunakan ini untuk membersihkan gambar sementara yang dibuat dengan storeToFile. Pada web, fitur ini tidak didukung dan akan memunculkan error.
getSafeAreaInsets Mendapatkan safe area insets untuk perangkat. Mengembalikan inset notch/cutout kamera sesuai orientasi dan orientasi saat ini. Dalam mode portrait: mengembalikan top inset (notch di atas). Dalam mode landscape: mengembalikan left inset (notch di samping). Ini khusus menargetkan area cutout (notch, punch hole, dll.) yang ada pada semua ponsel modern.
getOrientation Mendapatkan orientasi perangkat saat ini dalam format lintas platform.
getExposureModes Mengembalikan mode eksposur yang didukung oleh kamera aktif. Mode dapat berupa: 'locked', 'auto', 'continuous', 'custom'.
getExposureMode Mengembalikan mode eksposur saat ini.
setExposureMode Mengatur mode eksposur.
getExposureCompensationRange Mengembalikan rentang kompensasi eksposur (EV bias) yang didukung.
getExposureCompensation Mengembalikan kompensasi eksposur (EV bias) saat ini.
setExposureCompensation Mengatur kompensasi eksposur (EV bias). Nilai akan dibatasi sesuai rentang.
getWhiteBalanceModes Mengembalikan mode white-balance yang didukung oleh kamera aktif. Mode dapat berupa: 'AUTO', 'LOCK', 'CONTINUOUS'. CUSTOM tidak terdaftar sampai dukungan manual gains diimplementasikan.
getWhiteBalanceMode Mengembalikan mode white-balance saat ini.
setWhiteBalanceMode Mengatur mode white-balance. CONTINUOUS menjaga auto white balance tetap berjalan (direkomendasikan; menghindari efek warna hangat/kuning), LOCK membekukan gain saat ini, AUTO melakukan penyesuaian satu kali. CUSTOM direservasi dan akan ditolak sampai dukungan manual gain diimplementasikan.
getSupportedVideoFrameRates Menampilkan daftar frame rate video yang didukung oleh kamera aktif untuk format saat ini. Nilai yang didukung bergantung pada kamera, lensa, dan kualitas video yang dipilih.
getVideoFrameRate Mengembalikan konfigurasi video frame rate untuk kamera aktif. Pada Android, frame rate rekaman aktual masih bisa bervariasi dalam kondisi minim cahaya atau saat terjadi thermal pressure.
setVideoFrameRate Mengatur target video frame rate untuk sesi kamera aktif. Disarankan untuk mengirimkan frameRate ke startRecordVideo() saat memulai rekaman. Menolak nilai yang tidak didukung dengan pesan error yang jelas.

Contoh

start()

Memulai camera preview.

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

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

stop()

Menghentikan camera preview.

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

await CameraPreview.stop();

capture()

Mengambil foto dari kamera.

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

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

captureSample()

Mengambil satu frame dari stream camera preview.

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

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

startBarcodeScanner()

Memulai pemindaian barcode pada camera preview yang aktif.

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

await CameraPreview.startBarcodeScanner();

stopBarcodeScanner()

Menghentikan pemindaian barcode sambil tetap menjalankan camera preview.

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

await CameraPreview.stopBarcodeScanner();

Tabel di atas mencantumkan 56 metode inti. Dokumentasi untuk listener, helper versi, serta kontrak lengkap dari setiap metode tersedia di repositori GitHub.

Mendengarkan event

addListener mengembalikan sebuah handle. Panggil handle.remove() saat layar di-unmount, atau CameraPreview.removeAllListeners() untuk menghapus semua listener.

Referensi lengkap

Lanjutkan dari Menggunakan @capgo/camera-preview

Jika Anda menggunakan Menggunakan @capgo/camera-preview untuk merencanakan perilaku media dan antarmuka native, hubungkan dengan @capgo/camera-preview untuk detail implementasi di @capgo/camera-preview, Panduan Memulai untuk detail implementasi di Getting Started, Menggunakan @capgo/capacitor-live-activities untuk kemampuan native di Menggunakan @capgo/capacitor-live-activities, @capgo/capacitor-live-activities untuk detail implementasi di @capgo/capacitor-live-activities, dan Menggunakan @capgo/capacitor-video-player untuk kapabilitas native saat menggunakan @capgo/capacitor-video-player.

FAQ

FAQ plugin Camera Preview

Bagaimana cara install plugin Camera Preview di aplikasi Capacitor?

Jalankan "bun add @capgo/camera-preview" (atau "npm install @capgo/camera-preview"), lalu jalankan "bunx cap sync" agar proyek iOS dan Android mendeteksi code native. Import dari "@capgo/camera-preview" di dalam code aplikasi Anda.

Apakah @capgo/camera-preview mendukung React, Vue, dan Angular?

Ya. Camera Preview adalah package Capacitor, jadi bisa digunakan dengan framework web apa pun yang berjalan di dalam Capacitor, termasuk Ionic, React, Vue, Angular, Svelte, dan JavaScript murni.

Versi Capacitor mana yang didukung oleh @capgo/camera-preview?

Plugin Capgo mengikuti versi mayor Capacitor: gunakan versi mayor plugin yang sesuai dengan versi mayor Capacitor Anda (contoh: plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub mencantumkan versi yang masih di-maintain.

Apakah @capgo/camera-preview gratis dan open source?

Ya. Source code tersedia secara publik di GitHub pada https://github.com/Cap-go/capacitor-camera-preview/ dan package ini gratis untuk diinstall dari npm. Kami menerima laporan bug dan pull request.

Bisakah saya update code yang menggunakan Camera Preview tanpa review App Store?

Instalasi atau upgrade plugin akan mengubah native code, jadi butuh build store baru. Setelah itu, perubahan JavaScript, HTML, dan CSS yang memanggil plugin bisa langsung dikirim lewat live updates Capgo.

Rilis perubahan Camera Preview tanpa menunggu review aplikasi

Setelah plugin ada di build store Anda, live updates Capgo akan mengirim perubahan JavaScript, HTML, dan CSS ke pengguna dalam hitungan menit.

Mulai dengan Capgo