Erste Schritte mit Ricoh 360° Camera
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-ricoh360-camera-plugin`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/de/docs/plugins/ricoh360-camera/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
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();Bewährte Methoden
Section titled “Bewährte Methoden”- 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