Commencer
-
Installez le package
Fenêtre de terminal npm i @capgo/camera-previewFenêtre de terminal pnpm add @capgo/camera-previewFenêtre de terminal yarn add @capgo/camera-previewFenêtre de terminal bun add @capgo/camera-preview -
Synchronisation avec les projets natifs
Fenêtre de terminal npx cap syncFenêtre de terminal pnpm cap syncFenêtre de terminal yarn cap syncFenêtre de terminal bunx cap sync -
Configurer les autorisations
Ajoutez une description de l’utilisation de la caméra à votre
Info.plist:<key>NSCameraUsageDescription</key><string>To take photos and videos</string><key>NSMicrophoneUsageDescription</key><string>To record audio with videos</string><key>NSPhotoLibraryUsageDescription</key><string>To save photos and videos</string>Android
Section titled “Android”Ajoutez des autorisations de caméra à votre
AndroidManifest.xml:<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Utilisation
Section titled “Utilisation”Importez le plugin et utilisez ses méthodes pour contrôler la caméra :
import { CameraPreview } from '@capgo/camera-preview';import { CameraPreviewOptions, CameraPreviewPictureOptions } from '@capgo/camera-preview';
// Start camera previewconst startCamera = async () => { const cameraPreviewOptions: CameraPreviewOptions = { position: 'rear', height: 1920, width: 1080, quality: 50, toBack: false, paddingBottom: 0, rotateWhenOrientationChanged: true, x: 0, y: 0 };
await CameraPreview.start(cameraPreviewOptions);};
// Stop camera previewconst stopCamera = async () => { await CameraPreview.stop();};
// Take a pictureconst takePicture = async () => { const pictureOptions: CameraPreviewPictureOptions = { quality: 90, width: 1920, height: 1080 };
const result = await CameraPreview.capture(pictureOptions); const base64PictureData = result.value;
// Use the base64 image data console.log(base64PictureData);};
// Switch cameraconst flipCamera = async () => { await CameraPreview.flip();};
// Control flashconst setFlashMode = async (mode: 'on' | 'off' | 'auto' | 'torch') => { await CameraPreview.setFlashMode({ flashMode: mode });};
// Start recording videoconst startRecording = async () => { await CameraPreview.startRecordVideo({ storeToFile: true, fileName: 'myvideo' });};
// Stop recordingconst stopRecording = async () => { const result = await CameraPreview.stopRecordVideo(); console.log('Video path:', result.videoFilePath);};API Référence
Section titled “API Référence”début (options)
Section titled “début (options)”Démarre l’aperçu de la caméra.
interface CameraPreviewOptions { position?: 'rear' | 'front'; height?: number; width?: number; x?: number; y?: number; toBack?: boolean; paddingBottom?: number; rotateWhenOrientationChanged?: boolean; storeToFile?: boolean; disableExifHeaderStripping?: boolean; enableHighResolution?: boolean; disableAudio?: boolean; lockAndroidOrientation?: boolean; enableOpacity?: boolean; enableZoom?: boolean;}arrête()
Section titled “arrête()”Arrête l’aperçu de la caméra.
capture(options)
Section titled “capture(options)”Prend une photo et la renvoie sous forme de chaîne codée en base64.
interface CameraPreviewPictureOptions { height?: number; width?: number; quality?: number;}retourner()
Section titled “retourner()”Bascule entre la caméra avant et la caméra arrière.
setFlashMode(options)
Section titled “setFlashMode(options)”Règle le mode flash.
interface CameraPreviewFlashMode { flashMode: 'off' | 'on' | 'auto' | 'torch';}startRecordVideo(options)
Section titled “startRecordVideo(options)”Démarre l’enregistrement vidéo.
interface CameraPreviewVideoOptions { storeToFile?: boolean; fileName?: string; width?: number; height?: number; quality?: number; withFlash?: boolean;}stopRecordVideo()
Section titled “stopRecordVideo()”Arrête l’enregistrement vidéo et renvoie le chemin du fichier vidéo.
Fonctionnalités avancées
Section titled “Fonctionnalités avancées”Contrôle de la mise au point
Section titled “Contrôle de la mise au point”// Set focusawait CameraPreview.setFocusCoordinate({ x: 100, y: 100});
// Get supported focus modesconst focusModes = await CameraPreview.getFocusModes();
// Set focus modeawait CameraPreview.setFocusMode({ focusMode: 'continuous-picture'});Contrôle du zoom
Section titled “Contrôle du zoom”// Get max zoomconst maxZoom = await CameraPreview.getMaxZoom();
// Set zoomawait CameraPreview.setZoom({ zoom: 2.0});
// Get current zoomconst currentZoom = await CameraPreview.getZoom();Contrôle de l’exposition
Section titled “Contrôle de l’exposition”// Get exposure compensation rangeconst range = await CameraPreview.getExposureCompensationRange();
// Set exposure compensationawait CameraPreview.setExposureCompensation({ exposureCompensation: 0.5});## meilleures pratiques
-
Demandez d’abord les autorisations
import { Camera } from '@capacitor/camera';const requestPermissions = async () => {const permissions = await Camera.requestPermissions();if (permissions.camera === 'granted') {// Start camera preview}}; -
Gérer les changements d’orientation Définissez
rotateWhenOrientationChanged: truepour ajuster automatiquement l’aperçu. -
Optimiser les performances
- Utilisez les paramètres de résolution appropriés
- Arrêtez l’aperçu lorsqu’il n’est pas utilisé
- Désactivez les fonctionnalités dont vous n’avez pas besoin
-
Gestion des erreurs
try {await CameraPreview.start(options);} catch (error) {console.error('Failed to start camera:', error);}
## Remarques sur la plate-forme
- Nécessite iOS 10.0+
- Utilise le framework AVFoundation
- Accélération matérielle prise en charge
Android
Section titled “Android”- Nécessite Android 5.0 (API 21)+
- Utilise Camera2 API
- Prend en charge diverses fonctionnalités de l’appareil photo en fonction des capacités de l’appareil