Erste Schritte mit Ricoh 360° Camera
Installation
Section titled “Installation”npm install @capgo/capacitor-ricoh360-cameranpx cap syncyarn add @capgo/capacitor-ricoh360-cameranpx cap syncpnpm add @capgo/capacitor-ricoh360-cameranpx cap syncbun add @capgo/capacitor-ricoh360-cameranpx cap syncPlattformkonfiguration
Section titled “Plattformkonfiguration”Fügen Sie Kamera- und Fotobibliotheksberechtigungen zu Ihrer Info.plist hinzu:
<key>NSCameraUsageDescription</key><string>Diese App benötigt Zugriff auf die Kamera, um 360°-Fotos und Videos aufzunehmen</string><key>NSPhotoLibraryAddUsageDescription</key><string>Diese App benötigt Zugriff zum Speichern von 360°-Fotos und Videos in Ihrer Bibliothek</string>Android
Section titled “Android”Fügen Sie erforderliche Berechtigungen zu Ihrer AndroidManifest.xml hinzu:
<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />Unterstützte Geräte
Section titled “Unterstützte Geräte”Dieses Plugin unterstützt Ricoh Theta-Kameras:
- Ricoh Theta V
- Ricoh Theta Z1
- Ricoh Theta SC2
- Ricoh Theta X
Verwendungsbeispiel
Section titled “Verwendungsbeispiel”import { Ricoh360Camera } from '@capgo/capacitor-ricoh360-camera';
// Kameraverbindung initialisierenawait Ricoh360Camera.initialize();
// Mit Ricoh Theta-Kamera über WiFi verbindenawait Ricoh360Camera.connect({ ssid: 'THETAYL12345678', password: '12345678'});
// Live-Vorschau startenawait Ricoh360Camera.startPreview({ container: 'preview-container' // ID des HTML-Elements});
// 360°-Foto aufnehmenconst result = await Ricoh360Camera.capturePhoto();console.log('Foto gespeichert:', result.filePath);
// 360°-Video aufnehmen startenawait Ricoh360Camera.startRecording();
// Nach einiger Zeit Aufnahme beendensetTimeout(async () => { const video = await Ricoh360Camera.stopRecording(); console.log('Video gespeichert:', video.filePath);}, 10000);
// Vorschau beendenawait Ricoh360Camera.stopPreview();
// Von Kamera trennenawait Ricoh360Camera.disconnect();API-Referenz
Section titled “API-Referenz”initialize()
Section titled “initialize()”initialize() => Promise<void>Initialisieren Sie das Kamera-Plugin.
connect(options)
Section titled “connect(options)”connect(options: ConnectOptions) => Promise<void>Verbinden Sie sich mit einer Ricoh Theta-Kamera über WiFi.
| Parameter | Typ |
|---|---|
options | ConnectOptions |
disconnect()
Section titled “disconnect()”disconnect() => Promise<void>Trennen Sie sich von der Kamera.
startPreview(options)
Section titled “startPreview(options)”startPreview(options: PreviewOptions) => Promise<void>Starten Sie den Live-360°-Vorschau-Stream.
| Parameter | Typ |
|---|---|
options | PreviewOptions |
stopPreview()
Section titled “stopPreview()”stopPreview() => Promise<void>Beenden Sie den Live-Vorschau-Stream.
capturePhoto(options?)
Section titled “capturePhoto(options?)”capturePhoto(options?: CaptureOptions) => Promise<CaptureResult>Nehmen Sie ein 360°-Foto auf.
| Parameter | Typ |
|---|---|
options | CaptureOptions (optional) |
Rückgabe: Promise<CaptureResult>
startRecording(options?)
Section titled “startRecording(options?)”startRecording(options?: RecordingOptions) => Promise<void>Starten Sie die Aufnahme von 360°-Video.
| Parameter | Typ |
|---|---|
options | RecordingOptions (optional) |
stopRecording()
Section titled “stopRecording()”stopRecording() => Promise<CaptureResult>Beenden Sie die Videoaufnahme.
Rückgabe: Promise<CaptureResult>
getCameraInfo()
Section titled “getCameraInfo()”getCameraInfo() => Promise<CameraInfo>Erhalten Sie Kamerainformationen und -funktionen.
Rückgabe: Promise<CameraInfo>
setExposure(options)
Section titled “setExposure(options)”setExposure(options: ExposureOptions) => Promise<void>Legen Sie Kamerabelichtungseinstellungen fest.
| Parameter | Typ |
|---|---|
options | ExposureOptions |
setWhiteBalance(options)
Section titled “setWhiteBalance(options)”setWhiteBalance(options: WhiteBalanceOptions) => Promise<void>Legen Sie den Weißabgleichsmodus fest.
| Parameter | Typ |
|---|---|
options | WhiteBalanceOptions |
Schnittstellen
Section titled “Schnittstellen”ConnectOptions
Section titled “ConnectOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
ssid | string | WiFi SSID der Ricoh-Kamera |
password | string | WiFi-Passwort der Kamera |
PreviewOptions
Section titled “PreviewOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
container | string | HTML-Element-ID für Preview-Container |
CaptureOptions
Section titled “CaptureOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
quality | number | Bildqualität (1-100) (optional) |
saveToGallery | boolean | In Gerätegalerie speichern (optional) |
RecordingOptions
Section titled “RecordingOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
maxDuration | number | Maximale Aufnahmedauer in Sekunden (optional) |
quality | string | Videoqualität: ‘high’ | ‘medium’ | ‘low’ (optional) |
CaptureResult
Section titled “CaptureResult”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
filePath | string | Pfad zur aufgenommenen Datei |
fileUrl | string | URL zum Zugriff auf die Datei |
CameraInfo
Section titled “CameraInfo”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
model | string | Kameramodellname |
serialNumber | string | Kameraserien nummer |
firmwareVersion | string | Firmware-Version |
batteryLevel | number | Akkustand (0-100) |
ExposureOptions
Section titled “ExposureOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
mode | string | Belichtungsmodus: ‘auto’ | ‘manual’ | ‘iso’ |
iso | number | ISO-Wert (100, 200, 400, etc.) (optional) |
shutter | number | Verschlussgeschwindigkeit (optional) |
WhiteBalanceOptions
Section titled “WhiteBalanceOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
mode | string | Weißabgleich: ‘auto’ | ‘daylight’ | ‘cloudy’ | ‘tungsten’ | ‘fluorescent’ |
Vollständiges Beispiel
Section titled “Vollständiges Beispiel”import { Ricoh360Camera } from '@capgo/capacitor-ricoh360-camera';
class Camera360Controller { async setup() { try { // Initialisieren await Ricoh360Camera.initialize();
// Mit Kamera verbinden await Ricoh360Camera.connect({ ssid: 'THETAYL12345678', password: '12345678' });
// Kamerainformationen abrufen const info = await Ricoh360Camera.getCameraInfo(); console.log('Verbunden mit:', info.model); console.log('Akkustand:', info.batteryLevel + '%');
// Belichtung konfigurieren await Ricoh360Camera.setExposure({ mode: 'auto' });
// Weißabgleich konfigurieren await Ricoh360Camera.setWhiteBalance({ mode: 'auto' });
// Vorschau starten await Ricoh360Camera.startPreview({ container: 'camera-preview' });
} catch (error) { console.error('Kamerasetup fehlgeschlagen:', error); } }
async takePhoto() { try { const result = await Ricoh360Camera.capturePhoto({ quality: 95, saveToGallery: true }); console.log('Foto aufgenommen:', result.filePath); return result; } catch (error) { console.error('Fotoaufnahme fehlgeschlagen:', error); } }
async recordVideo(durationSeconds: number) { try { // Aufnahme starten await Ricoh360Camera.startRecording({ maxDuration: durationSeconds, quality: 'high' });
console.log('Aufnahme gestartet...');
// Nach Dauer beenden setTimeout(async () => { const result = await Ricoh360Camera.stopRecording(); console.log('Video gespeichert:', result.filePath); }, durationSeconds * 1000);
} catch (error) { console.error('Videoaufnahme fehlgeschlagen:', error); } }
async cleanup() { try { await Ricoh360Camera.stopPreview(); await Ricoh360Camera.disconnect(); console.log('Kamera getrennt'); } catch (error) { console.error('Aufräumen fehlgeschlagen:', error); } }}
// Verwendungconst camera = new Camera360Controller();await camera.setup();await camera.takePhoto();await camera.recordVideo(10); // 10 Sekundenawait camera.cleanup();Best Practices
Section titled “Best Practices”- Initialisieren Sie das Plugin immer vor der Verbindung mit der Kamera
- Stellen Sie sicher, dass das Gerät mit dem WiFi-Netzwerk der Kamera verbunden ist
- Behandeln Sie Fehler elegant, besonders Verbindungsfehler
- Stoppen Sie die Vorschau und trennen Sie die Verbindung, wenn Sie fertig sind, um Akku zu sparen
- Überprüfen Sie den Kameraakku vor längeren Aufnahmesitzungen
- Testen Sie mit echter Ricoh Theta Hardware
- Verwenden Sie entsprechende Videoqualität basierend auf Speicherbeschränkungen
Fehlerbehebung
Section titled “Fehlerbehebung”Verbindungsprobleme
Section titled “Verbindungsprobleme”- Überprüfen Sie, ob die Kamera eingeschaltet ist
- Überprüfen Sie, ob WiFi-SSID und Passwort korrekt sind
- Stellen Sie sicher, dass keine andere App mit der Kamera verbunden ist
- Setzen Sie WiFi-Einstellungen der Kamera zurück, wenn die Verbindung fehlschlägt
Vorschau wird nicht angezeigt
Section titled “Vorschau wird nicht angezeigt”- Überprüfen Sie, ob das HTML-Container-Element vorhanden ist
- Überprüfen Sie, ob Kameraberechtigungen erteilt wurden
- Stellen Sie sicher, dass die Vorschau nach erfolgreicher Verbindung gestartet wird
Aufnahmefehler
Section titled “Aufnahmefehler”- Überprüfen Sie den verfügbaren Speicherplatz
- Überprüfen Sie, ob der Kameraakku ausreichend ist
- Stellen Sie sicher, dass die Kamera nicht im Schlafmodus ist