audio-streaming
Receive synchronized PCM audio frames through a Camera stream on iOS
Capture standalone high-quality photos from connected glasses on iOS
$ npx -y skills add facebook/meta-wearables-dat-ios --skill camera-capture --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/camera-captureContext preview
The summary Claude sees to decide when to auto-load this skill.
Capture standalone high-quality photos from connected glasses on iOS
name: camera-capture description: Capture standalone high-quality photos from connected glasses on iOS
Camera Capture is the experimental standalone high-quality photo path exposed by `camera.photo`. It is different from `stream.capturePhoto`, which takes a photo while video streaming remains active.
The app needs Camera approval in Wearables Developer Center and `.camera` permission. Add Camera only after the `DeviceSession` starts. Stream and standalone Photo compete for camera hardware, so stop an active Stream before starting Photo.
Register the publishers you need before calling `start()`, then wait for `.started` before requesting a capture.
guard let camera = try session.addCamera(config: StreamConfiguration()) else { return }
let photo = camera.photo
let photoTokens = ListenerTokenBag()
photo.photoDataPublisher.listen { capture in
Task { @MainActor in
updatePhotoPreview(capture.imageData, metadata: capture.metadata)
}
}.store(in: photoTokens)
photo.start()After Photo reaches `.started`, call `photo.capturePhoto(resolution: .full, quality: .high)` with the desired resolution and quality. Capture is asynchronous; image data arrives through `photoDataPublisher`. Observe `transferProgressPublisher` for progress and `errorPublisher` for failures. Larger, higher-quality captures take longer to process and transfer.
Calling capture before `.started` publishes `PhotoError.notReady`. Setup and capture failures arrive through `errorPublisher`. Keep the Photo and `photoTokens` alive until delivery completes, then stop Photo, clear the token bag, and stop Camera.
After `photo.stop()` returns Photo to `.stopped`, the same `camera.photo` instance can be restarted with `photo.start()`. Stopping Camera or the parent session also stops its children.
Before requesting capture, configure the next image with `glasses.services.cameraCapture.setCapturedPhoto(fileURL:)` or use `simulateCaptureFailure()` for a one-shot failure.
Standalone Camera Capture is experimental. Apps can use it for development and beta testing, but cannot publish it to production release channels yet.
The Meta Wearables Device Access Toolkit enables developers to utilize Meta's AI glasses to build hands-free wearable experiences into their mobile applications.
Receive synchronized PCM audio frames through a Camera stream on iOS
Stream, video frames, photo capture, resolution/frame rate configuration
Swift patterns, async/await, naming conventions, key types for DAT SDK iOS development
Use the Wearables DAT MCP server for live DAT documentation search with `search_dat_docs`,…
Common issues, Developer Mode, version compatibility, state machine diagnosis
Display capability setup, display-capable device selection, UI DSL, icons, buttons, images,…