OptionallogSend a log message to the parent app's logger (Sentry + console).
Logs are tagged with source: 'external-app', the app URL, and slide name.
Silently fails if the parent doesn't support the log method (backward compatible).
Log level: 'debug', 'info', 'warn', 'error'
Log message
Optionalcontext: Record<string, unknown>
Optional context data
Debug log (console only, not sent to Sentry)
Optionalcontext: Record<string, unknown>Error log (sent to Sentry Logs + creates Sentry issue)
Optionalcontext: Record<string, unknown>Info log
Optionalcontext: Record<string, unknown>Warning log (sent to Sentry Logs)
Optionalcontext: Record<string, unknown>OptionaldestroyTear down the SDK: clear caches, cancel timers, remove listeners. Safe to call multiple times. Optional — older SDK builds may not implement this.
OptionaldetectRun full face detection on an ImageBitmap. Returns a 128-D descriptor (ArrayBuffer) and bounding box. The parent hosts the face-api.js worker — models persist across iframe reloads.
Optionaloptions: FaceDetectionOptionsOptionaldetectRun lightweight face presence detection (no descriptor). Faster than detectFace — use for "is someone there?" checks.
Optionaloptions: FaceDetectionOptionsExit the external app and signal result to the gallery. The gallery configuration maps results to target slides.
Optionaloptions: ExitOptionsGenerate a QR code. If no options provided, generates QR for the last recording.
Optionaloptions: { content?: string; recordingId?: string }Get camera stream info. The parent window manages the actual MediaStream.
Optionaloptions: { height?: number; width?: number }Get SDK configuration.
Get a recording by ID for playback. If no recordingId provided, returns the last recording.
OptionalrecordingId: stringGet current recording status.
Get the selected camera info.
Get all available videos configured for this slide.
Get URL for a specific video.
Check if the SDK is ready.
List all available videos (alias for getVideos).
Unsubscribe from SDK events.
Subscribe to SDK events.
Subscribe to an event once.
Play a video by ID. Returns the video URL and ID for playback.
Queue a recording for background upload. The upload will continue even if the tab is closed.
Wait for the SDK to be ready. Call this before using any other SDK methods.
true when ready
Release the camera stream.
OptionalreleaseRelease an object URL previously returned by getRecording / playVideo. Allows the SDK to revoke blob URLs and free memory. Optional — older SDK builds may not implement this.
Start recording from the camera. Recording will automatically stop after the specified duration. Listen for 'recordingComplete' event for the result.
Optionaloptions: { durationMs?: number }Stop recording early (if needed).
The main SDK interface that external apps use to interact with Choreo Display. Both the real SDK and mock SDK implement this interface.