Skip to content
Mobile
Skill

/audio-streaming

Receive synchronized PCM audio frames through a Camera stream on iOS

BOOST
From plugin
meta-wearables-dat-ios
56817 skills
Install
$ npx -y skills add facebook/meta-wearables-dat-ios --skill audio-streaming --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/audio-streaming

Context preview

The summary Claude sees to decide when to auto-load this skill.

Receive synchronized PCM audio frames through a Camera stream on iOS

SKILL.md

audio-streaming.SKILL.md
name: audio-streaming
description: Receive synchronized PCM audio frames through a Camera stream on iOS

Audio Streaming (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.

Permissions

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.

Configure PCM audio

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.stream

Supported sample rates are 16,000, 44,100, and 48,000 Hz. Match downstream audio processing to the configured sample rate and channel count.

Listen before starting

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.

Cleanup and testing limits

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.

Availability

Audio Streaming is experimental. Apps can use it for development and beta testing, but cannot publish it to production release channels yet.

Read more
Ships withmeta-wearables-dat-ios

The Meta Wearables Device Access Toolkit enables developers to utilize Meta's AI glasses to build hands-free wearable experiences into their mobile applications.

Get the whole plugin
Stats
568
Stars
126
Forks
Active
Maintenance
Shell
Language
6d ago
Last commit
10mo ago
Created
5h ago
Added

Repo: facebook/meta-wearables-dat-ios

Other skills on meta-wearables-dat-ios.