Erste Schritte
-
Paket installieren
Terminal-Fenster npm i @capgo/camera-previewTerminal-Fenster pnpm add @capgo/camera-previewTerminal-Fenster yarn add @capgo/camera-previewTerminal-Fenster bun add @capgo/camera-preview -
Mit nativen Projekten synchronisieren
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync -
Berechtigungen konfigurieren
Fügen Sie die Kamera-Nutzungsbeschreibung zu Ihrer
Info.plisthinzu:<key>NSCameraUsageDescription</key><string>Um Fotos und Videos aufzunehmen</string><key>NSMicrophoneUsageDescription</key><string>Um Audio mit Videos aufzunehmen</string><key>NSPhotoLibraryUsageDescription</key><string>Um Fotos und Videos zu speichern</string>Android
Section titled “Android”Fügen Sie Kamera-Berechtigungen zu Ihrer
AndroidManifest.xmlhinzu:<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Verwendung
Section titled “Verwendung”Importieren Sie das Plugin und verwenden Sie seine Methoden zur Steuerung der Kamera:
import { CameraPreview } from '@capgo/camera-preview';import { CameraPreviewOptions, CameraPreviewPictureOptions } from '@capgo/camera-preview';
// Kameravorschau startenconst 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);};
// Kameravorschau stoppenconst stopCamera = async () => { await CameraPreview.stop();};
// Foto aufnehmenconst takePicture = async () => { const pictureOptions: CameraPreviewPictureOptions = { quality: 90, width: 1920, height: 1080 };
const result = await CameraPreview.capture(pictureOptions); const base64PictureData = result.value;
// Base64-Bilddaten verwenden console.log(base64PictureData);};
// Kamera wechselnconst flipCamera = async () => { await CameraPreview.flip();};
// Blitz steuernconst setFlashMode = async (mode: 'on' | 'off' | 'auto' | 'torch') => { await CameraPreview.setFlashMode({ flashMode: mode });};
// Videoaufnahme startenconst startRecording = async () => { await CameraPreview.startRecordVideo({ storeToFile: true, fileName: 'myvideo' });};
// Aufnahme stoppenconst stopRecording = async () => { const result = await CameraPreview.stopRecordVideo(); console.log('Videopfad:', result.videoFilePath);};API-Referenz
Section titled “API-Referenz”start(options)
Section titled “start(options)”Startet die Kameravorschau.
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()”Stoppt die Kameravorschau.
capture(options)
Section titled “capture(options)”Macht ein Foto und gibt es als Base64-codierten String zurück.
interface CameraPreviewPictureOptions { height?: number; width?: number; quality?: number;}flip()
Section titled “flip()”Wechselt zwischen Front- und Rückkamera.
setFlashMode(options)
Section titled “setFlashMode(options)”Setzt den Blitzmodus.
interface CameraPreviewFlashMode { flashMode: 'off' | 'on' | 'auto' | 'torch';}startRecordVideo(options)
Section titled “startRecordVideo(options)”Startet die Videoaufnahme.
interface CameraPreviewVideoOptions { storeToFile?: boolean; fileName?: string; width?: number; height?: number; quality?: number; withFlash?: boolean;}stopRecordVideo()
Section titled “stopRecordVideo()”Stoppt die Videoaufnahme und gibt den Videopfad zurück.
Erweiterte Funktionen
Section titled “Erweiterte Funktionen”Fokussteuerung
Section titled “Fokussteuerung”// Fokus setzenawait CameraPreview.setFocusCoordinate({ x: 100, y: 100});
// Unterstützte Fokusmodi abrufenconst focusModes = await CameraPreview.getFocusModes();
// Fokusmodus setzenawait CameraPreview.setFocusMode({ focusMode: 'continuous-picture'});Zoomsteuerung
Section titled “Zoomsteuerung”// Maximalen Zoom abrufenconst maxZoom = await CameraPreview.getMaxZoom();
// Zoom setzenawait CameraPreview.setZoom({ zoom: 2.0});
// Aktuellen Zoom abrufenconst currentZoom = await CameraPreview.getZoom();Belichtungssteuerung
Section titled “Belichtungssteuerung”// Belichtungskorrekturbereich abrufenconst range = await CameraPreview.getExposureCompensationRange();
// Belichtungskorrektur setzenawait CameraPreview.setExposureCompensation({ exposureCompensation: 0.5});Best Practices
Section titled “Best Practices”-
Berechtigungen zuerst anfordern
import { Camera } from '@capacitor/camera';const requestPermissions = async () => {const permissions = await Camera.requestPermissions();if (permissions.camera === 'granted') {// Kameravorschau starten}}; -
Orientierungsänderungen handhaben Setzen Sie
rotateWhenOrientationChanged: true, um die Vorschau automatisch anzupassen. -
Leistung optimieren
- Verwenden Sie angemessene Auflösungseinstellungen
- Stoppen Sie die Vorschau, wenn sie nicht verwendet wird
- Deaktivieren Sie Funktionen, die Sie nicht benötigen
-
Fehlerbehandlung
try {await CameraPreview.start(options);} catch (error) {console.error('Kamera konnte nicht gestartet werden:', error);}
Plattform-Hinweise
Section titled “Plattform-Hinweise”- Erfordert iOS 10.0+
- Verwendet AVFoundation Framework
- Hardware-Beschleunigung unterstützt
Android
Section titled “Android”- Erfordert Android 5.0 (API 21)+
- Verwendet Camera2 API
- Unterstützt verschiedene Kamerafunktionen basierend auf Gerätefähigkeiten