Premiers pas
-
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 -
Synchronisez 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 -
Configurez les autorisations
Ajoutez la description d’utilisation de la caméra à votre
Info.plist:<key>NSCameraUsageDescription</key><string>Pour prendre des photos et vidéos</string><key>NSMicrophoneUsageDescription</key><string>Pour enregistrer de l'audio avec les vidéos</string><key>NSPhotoLibraryUsageDescription</key><string>Pour sauvegarder les photos et vidéos</string>Android
Section titled “Android”Ajoutez les autorisations 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';
// Démarrer l'aperçu de la caméraconst 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);};
// Arrêter l'aperçu de la caméraconst stopCamera = async () => { await CameraPreview.stop();};
// Prendre une photoconst takePicture = async () => { const pictureOptions: CameraPreviewPictureOptions = { quality: 90, width: 1920, height: 1080 };
const result = await CameraPreview.capture(pictureOptions); const base64PictureData = result.value;
// Utiliser les données d'image base64 console.log(base64PictureData);};
// Changer de caméraconst flipCamera = async () => { await CameraPreview.flip();};
// Contrôler le flashconst setFlashMode = async (mode: 'on' | 'off' | 'auto' | 'torch') => { await CameraPreview.setFlashMode({ flashMode: mode });};
// Démarrer l'enregistrement vidéoconst startRecording = async () => { await CameraPreview.startRecordVideo({ storeToFile: true, fileName: 'myvideo' });};
// Arrêter l'enregistrementconst stopRecording = async () => { const result = await CameraPreview.stopRecordVideo(); console.log('Chemin vidéo:', result.videoFilePath);};Référence API
Section titled “Référence API”start(options)
Section titled “start(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;}stop()
Section titled “stop()”Arrête l’aperçu de la caméra.
capture(options)
Section titled “capture(options)”Prend une photo et la retourne sous forme de chaîne encodée en base64.
interface CameraPreviewPictureOptions { height?: number; width?: number; quality?: number;}flip()
Section titled “flip()”Bascule entre la caméra avant et arrière.
setFlashMode(options)
Section titled “setFlashMode(options)”Définit 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 retourne 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”// Définir la mise au pointawait CameraPreview.setFocusCoordinate({ x: 100, y: 100});
// Obtenir les modes de mise au point supportésconst focusModes = await CameraPreview.getFocusModes();
// Définir le mode de mise au pointawait CameraPreview.setFocusMode({ focusMode: 'continuous-picture'});Contrôle du zoom
Section titled “Contrôle du zoom”// Obtenir le zoom maximumconst maxZoom = await CameraPreview.getMaxZoom();
// Définir le zoomawait CameraPreview.setZoom({ zoom: 2.0});
// Obtenir le zoom actuelconst currentZoom = await CameraPreview.getZoom();Contrôle de l’exposition
Section titled “Contrôle de l’exposition”// Obtenir la plage de compensation d'expositionconst range = await CameraPreview.getExposureCompensationRange();
// Définir la compensation d'expositionawait CameraPreview.setExposureCompensation({ exposureCompensation: 0.5});Meilleures pratiques
Section titled “Meilleures pratiques”-
Demander d’abord les autorisations
import { Camera } from '@capacitor/camera';const requestPermissions = async () => {const permissions = await Camera.requestPermissions();if (permissions.camera === 'granted') {// Démarrer l'aperçu de la caméra}}; -
Gérer les changements d’orientation Définissez
rotateWhenOrientationChanged: truepour ajuster automatiquement l’aperçu. -
Optimiser les performances
- Utilisez des 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('Échec du démarrage de la caméra:', error);}
Notes de plateforme
Section titled “Notes de plateforme”- Nécessite iOS 10.0+
- Utilise le framework AVFoundation
- Accélération matérielle supportée
Android
Section titled “Android”- Nécessite Android 5.0 (API 21)+
- Utilise l’API Camera2
- Support de diverses fonctionnalités de caméra selon les capacités de l’appareil