camera-capture
Capture standalone high-quality photos from connected glasses on iOS
Receive synchronized PCM audio frames through a Camera stream on iOS
$ npx -y skills add facebook/meta-wearables-dat-ios --skill audio-streaming --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/audio-streamingContext preview
The summary Claude sees to decide when to auto-load this skill.
Receive synchronized PCM audio frames through a Camera stream on iOS
name: audio-streaming description: Receive synchronized PCM audio frames through a Camera stream on iOS
Audio Streaming is an experimental extension of Camera Stream, not a separate capability. Follow the `camera-streaming` skill to start a device session and attach Camera, then add audio configuration and collection.
The app needs Camera and Audio Streaming approval in Wearables Developer Center plus both `.camera` and `.microphone` runtime permissions. Check silently first and request either permission only after explaining the Meta AI app transition.
Provide a non-`nil` `audioCodec` when creating `StreamConfiguration`:
let configuration = StreamConfiguration(
videoCodec: .raw,
audioCodec: .pcm(sampleRate: .rate16000, numberOfChannels: 1),
resolution: .medium,
frameRate: 24
)
guard let camera = try session.addCamera(config: configuration) else { return }
let stream = camera.streamSupported sample rates are 16,000, 44,100, and 48,000 Hz. Match downstream audio processing to the configured sample rate and channel count.
Retain the listener token on the long-lived owner and register it before `stream.start()`:
stream.audioFramePublisher.listen { frame in
consumePCM(
frame.pcmBuffer,
presentationTime: frame.presentationTimeStamp
)
}.store(in: streamTokens)
stream.start()Use the presentation timestamp when ordering audio or aligning it with video. Do not mutate the delivered PCM buffer.
Audio shares Stream state and errors. Permission failures and critical stream errors arrive through `stream.errorPublisher`; do not create a second lifecycle for audio.
Deterministically cancel the audio listener before calling `camera.stop()`. Stopping Camera cascades to its Stream and invalidates both.
MockDeviceKit can negotiate an audio-enabled Camera stream, but it does not provide a public deterministic audio-frame injection API. Do not write tests that assume mock PCM frames will arrive.
Audio Streaming 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.
Capture standalone high-quality photos from connected glasses 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,…