Zum Inhalt springen

Erste Schritte mit Ricoh 360° Camera

Terminal-Fenster
npm install @capgo/capacitor-ricoh360-camera
npx cap sync

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>

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" />

Dieses Plugin unterstützt Ricoh Theta-Kameras:

  • Ricoh Theta V
  • Ricoh Theta Z1
  • Ricoh Theta SC2
  • Ricoh Theta X
import { Ricoh360Camera } from '@capgo/capacitor-ricoh360-camera';
// Kameraverbindung initialisieren
await Ricoh360Camera.initialize();
// Mit Ricoh Theta-Kamera über WiFi verbinden
await Ricoh360Camera.connect({
ssid: 'THETAYL12345678',
password: '12345678'
});
// Live-Vorschau starten
await Ricoh360Camera.startPreview({
container: 'preview-container' // ID des HTML-Elements
});
// 360°-Foto aufnehmen
const result = await Ricoh360Camera.capturePhoto();
console.log('Foto gespeichert:', result.filePath);
// 360°-Video aufnehmen starten
await Ricoh360Camera.startRecording();
// Nach einiger Zeit Aufnahme beenden
setTimeout(async () => {
const video = await Ricoh360Camera.stopRecording();
console.log('Video gespeichert:', video.filePath);
}, 10000);
// Vorschau beenden
await Ricoh360Camera.stopPreview();
// Von Kamera trennen
await Ricoh360Camera.disconnect();
initialize() => Promise<void>

Initialisieren Sie das Kamera-Plugin.

connect(options: ConnectOptions) => Promise<void>

Verbinden Sie sich mit einer Ricoh Theta-Kamera über WiFi.

ParameterTyp
optionsConnectOptions
disconnect() => Promise<void>

Trennen Sie sich von der Kamera.

startPreview(options: PreviewOptions) => Promise<void>

Starten Sie den Live-360°-Vorschau-Stream.

ParameterTyp
optionsPreviewOptions
stopPreview() => Promise<void>

Beenden Sie den Live-Vorschau-Stream.

capturePhoto(options?: CaptureOptions) => Promise<CaptureResult>

Nehmen Sie ein 360°-Foto auf.

ParameterTyp
optionsCaptureOptions (optional)

Rückgabe: Promise<CaptureResult>

startRecording(options?: RecordingOptions) => Promise<void>

Starten Sie die Aufnahme von 360°-Video.

ParameterTyp
optionsRecordingOptions (optional)
stopRecording() => Promise<CaptureResult>

Beenden Sie die Videoaufnahme.

Rückgabe: Promise<CaptureResult>

getCameraInfo() => Promise<CameraInfo>

Erhalten Sie Kamerainformationen und -funktionen.

Rückgabe: Promise<CameraInfo>

setExposure(options: ExposureOptions) => Promise<void>

Legen Sie Kamerabelichtungseinstellungen fest.

ParameterTyp
optionsExposureOptions
setWhiteBalance(options: WhiteBalanceOptions) => Promise<void>

Legen Sie den Weißabgleichsmodus fest.

ParameterTyp
optionsWhiteBalanceOptions
EigenschaftTypBeschreibung
ssidstringWiFi SSID der Ricoh-Kamera
passwordstringWiFi-Passwort der Kamera
EigenschaftTypBeschreibung
containerstringHTML-Element-ID für Preview-Container
EigenschaftTypBeschreibung
qualitynumberBildqualität (1-100) (optional)
saveToGallerybooleanIn Gerätegalerie speichern (optional)
EigenschaftTypBeschreibung
maxDurationnumberMaximale Aufnahmedauer in Sekunden (optional)
qualitystringVideoqualität: ‘high’ | ‘medium’ | ‘low’ (optional)
EigenschaftTypBeschreibung
filePathstringPfad zur aufgenommenen Datei
fileUrlstringURL zum Zugriff auf die Datei
EigenschaftTypBeschreibung
modelstringKameramodellname
serialNumberstringKameraserien nummer
firmwareVersionstringFirmware-Version
batteryLevelnumberAkkustand (0-100)
EigenschaftTypBeschreibung
modestringBelichtungsmodus: ‘auto’ | ‘manual’ | ‘iso’
isonumberISO-Wert (100, 200, 400, etc.) (optional)
shutternumberVerschlussgeschwindigkeit (optional)
EigenschaftTypBeschreibung
modestringWeißabgleich: ‘auto’ | ‘daylight’ | ‘cloudy’ | ‘tungsten’ | ‘fluorescent’
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);
}
}
}
// Verwendung
const camera = new Camera360Controller();
await camera.setup();
await camera.takePhoto();
await camera.recordVideo(10); // 10 Sekunden
await camera.cleanup();
  • 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
  • Ü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
  • Ü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
  • Ü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