콘텐츠로 건너뛰기

시작하기

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

Info.plist에 카메라 및 사진 라이브러리 권한을 추가하세요.

<key>NSCameraUsageDescription</key>
<string>This app needs access to the camera to capture 360° photos and videos</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app needs access to save 360° photos and videos to your library</string>

AndroidManifest.xml에 필수 권한을 추가하세요.

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

이 플러그인은 Ricoh Theta 시리즈 카메라를 지원합니다:

  • 리코 세타 V -리코 세타 Z1
  • 리코 세타 SC2
  • 리코 세타 X
import { Ricoh360Camera } from '@capgo/capacitor-ricoh360-camera';
// Initialize camera connection
await Ricoh360Camera.initialize();
// Connect to Ricoh Theta camera via WiFi
await Ricoh360Camera.connect({
ssid: 'THETAYL12345678',
password: '12345678'
});
// Start live preview
await Ricoh360Camera.startPreview({
container: 'preview-container' // ID of HTML element
});
// Capture a 360° photo
const result = await Ricoh360Camera.capturePhoto();
console.log('Photo saved:', result.filePath);
// Start recording 360° video
await Ricoh360Camera.startRecording();
// Stop recording after some time
setTimeout(async () => {
const video = await Ricoh360Camera.stopRecording();
console.log('Video saved:', video.filePath);
}, 10000);
// Stop preview
await Ricoh360Camera.stopPreview();
// Disconnect from camera
await Ricoh360Camera.disconnect();
initialize() => Promise<void>

카메라 플러그인을 초기화합니다.

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

WiFi를 통해 Ricoh Theta 카메라에 연결하세요.

파람유형
optionsConnectOptions
disconnect() => Promise<void>

카메라에서 연결을 끊습니다.

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

실시간 360° 미리보기 스트리밍을 시작하세요.

파람유형
optionsPreviewOptions
stopPreview() => Promise<void>

실시간 미리보기 스트림을 중지합니다.

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

360° 사진을 촬영하세요.

파람유형
optionsCaptureOptions(선택 사항)

반품: Promise<CaptureResult>

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

360° 비디오 녹화를 시작합니다.

파람유형
optionsRecordingOptions(선택 사항)
stopRecording() => Promise<CaptureResult>

비디오 녹화를 중지합니다.

반품: Promise<CaptureResult>

getCameraInfo() => Promise<CameraInfo>

카메라 정보와 기능을 얻으세요.

반품: Promise<CameraInfo>

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

카메라 노출 설정을 지정합니다.

파람유형
optionsExposureOptions
setWhiteBalance(options: WhiteBalanceOptions) => Promise<void>

화이트 밸런스 모드를 설정합니다.

파람유형
optionsWhiteBalanceOptions
소품유형설명
ssidstringRicoh 카메라의 WiFi SSID
passwordstring카메라의 WiFi 비밀번호
소품유형설명
containerstringHTML 미리보기 컨테이너의 요소 ID

| -------------- | ------------------ | ------------------------ | | quality | number | 이미지 품질(1-100)(선택 사항) | | saveToGallery | boolean | 장치 갤러리에 저장(선택 사항) |

소품유형설명
maxDurationnumber최대 녹화 시간(초)(선택 사항)
qualitystring비디오 품질: ‘높음’ | ‘중간’ | ‘낮음’(선택 사항)
소품유형설명
filePathstring캡처된 파일의 경로
fileUrlstring파일에 액세스하기 위한 URL
소품유형설명
modelstring카메라 모델명
serialNumberstring카메라 일련번호
firmwareVersionstring펌웨어 버전
batteryLevelnumber배터리 수준(0-100)
소품유형설명
modestring노출 모드: ‘자동’ | ‘수동’ | ‘이소’
isonumberISO 값(100, 200, 400 등)(선택 사항)
shutternumber셔터 속도(옵션)
소품유형설명
modestring화이트 밸런스: ‘자동’ | ‘일광’ | ‘흐림’ | ‘텅스텐’ | ‘형광’
import { Ricoh360Camera } from '@capgo/capacitor-ricoh360-camera';
class Camera360Controller {
async setup() {
try {
// Initialize
await Ricoh360Camera.initialize();
// Connect to camera
await Ricoh360Camera.connect({
ssid: 'THETAYL12345678',
password: '12345678'
});
// Get camera info
const info = await Ricoh360Camera.getCameraInfo();
console.log('Connected to:', info.model);
console.log('Battery level:', info.batteryLevel + '%');
// Configure exposure
await Ricoh360Camera.setExposure({
mode: 'auto'
});
// Configure white balance
await Ricoh360Camera.setWhiteBalance({
mode: 'auto'
});
// Start preview
await Ricoh360Camera.startPreview({
container: 'camera-preview'
});
} catch (error) {
console.error('Failed to setup camera:', error);
}
}
async takePhoto() {
try {
const result = await Ricoh360Camera.capturePhoto({
quality: 95,
saveToGallery: true
});
console.log('Photo captured:', result.filePath);
return result;
} catch (error) {
console.error('Failed to capture photo:', error);
}
}
async recordVideo(durationSeconds: number) {
try {
// Start recording
await Ricoh360Camera.startRecording({
maxDuration: durationSeconds,
quality: 'high'
});
console.log('Recording started...');
// Stop after duration
setTimeout(async () => {
const result = await Ricoh360Camera.stopRecording();
console.log('Video saved:', result.filePath);
}, durationSeconds * 1000);
} catch (error) {
console.error('Failed to record video:', error);
}
}
async cleanup() {
try {
await Ricoh360Camera.stopPreview();
await Ricoh360Camera.disconnect();
console.log('Camera disconnected');
} catch (error) {
console.error('Failed to cleanup:', error);
}
}
}
// Usage
const camera = new Camera360Controller();
await camera.setup();
await camera.takePhoto();
await camera.recordVideo(10); // 10 seconds
await camera.cleanup();
  • 카메라에 연결하기 전에 항상 플러그인을 초기화하세요.
  • 장치가 카메라의 WiFi 네트워크에 연결되어 있는지 확인하십시오.
  • 오류, 특히 연결 실패를 적절하게 처리합니다.
  • 미리보기를 중지하고 완료되면 배터리를 절약하기 위해 연결을 끊습니다.
  • 장시간 녹화 세션 전에 카메라 배터리 잔량을 확인하세요.
  • 실제 Ricoh Theta 하드웨어에서 테스트
  • 저장 공간 제약에 따라 적절한 비디오 품질을 사용하십시오.
  • 카메라 전원이 켜져 있는지 확인하세요.
  • WiFi SSID와 비밀번호가 올바른지 확인하세요.
  • 카메라에 다른 앱이 연결되어 있지 않은지 확인하세요.
  • 연결이 실패하면 카메라 WiFi 설정을 재설정합니다.
  • HTML 컨테이너 요소가 존재하는지 확인하세요.
  • 카메라 권한이 부여되었는지 확인하세요.
  • 연결 성공 후 미리보기가 시작되는지 확인하세요.

캡처 실패- 사용 가능한 저장 공간 확인

Section titled “캡처 실패- 사용 가능한 저장 공간 확인”
  • 카메라 배터리 잔량이 충분한지 확인하세요.
  • 카메라가 절전 모드에 있지 않은지 확인하세요.