Send 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
Run 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: FaceDetectionOptionsRun 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 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 upload status for a task.
Navigate to another slide by ID.
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.
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.