AR Session Recording
AR Session Recording
Capture an AR session to local storage — camera passthrough + raw IMU + ground-truth pose — for offline analysis (e.g. tinyvio / reactviro_validate_recording). This is not screen recording.
Not the same as
startVideoRecording/stopVideoRecording, orViroCameraTexture'sstartRecording. Those capture rendered / camera-texture video. Session recording keeps three separate streams a visual-inertial engine needs to replay the session offline.
Available since ViroReact 2.58.0. Documented here as part of the 3.0 docs catch-up.
Quick start
const { success, error } = await sceneNavigator.startRecording(outputDir);
// ...walk the space...
await sceneNavigator.stopRecording();
const status = await sceneNavigator.getRecordingStatus(); // "None" | "Recording" | "IOError" | "Unsupported"
outputDir should be a plain filesystem path (not a file:// URI). After stop it contains video.mp4 and session.jsonl.
API
| Method | Description |
|---|---|
startRecording(outputDir) | Starts capture. Returns { success, error? }. |
stopRecording() | Finalizes files. No-op if nothing is recording. |
getRecordingStatus() | "None" | "Recording" | "IOError" | "Unsupported". |
Platform support
| Platform | Status |
|---|---|
| iOS | ✅ |
| Android | ✅ |
| Web / visionOS / Quest | ❌ — getRecordingStatus() returns "Unsupported" |
Getting files off the device
On iOS, enable Files-app access (UIFileSharingEnabled + LSSupportsOpeningDocumentsInPlace) and/or share immediately with expo-sharing. Android app-external paths are reachable via adb pull or a file manager.
Related
- ViroARSceneNavigator — method reference
- ViroCameraTexture — screen / camera-texture recording
Updated about 3 hours ago