连接摄像头进行视频流、抓取画面并灵活配置分辨率与帧率。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "camera-streaming" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/meta-wearables-dat-ios/main/plugins/mwdat-ios/skills/camera-streaming/SKILL.md 2. 保存为 ~/.claude/skills/camera-streaming/SKILL.md 3. 装好后重载技能,告诉我可以用了
请调用 camera-streaming,连接默认摄像头并拍摄一张照片,保存为 JPEG,同时返回文件路径和拍摄时间。
输出已保存照片的位置、时间戳,以及拍摄成功状态。
请用 camera-streaming 启动摄像头视频流,设置分辨率为 1280x720、帧率为 30fps,并持续输出视频帧供后续处理。
输出已启动的视频流信息,包括分辨率、帧率与帧数据可用状态。
请调用 camera-streaming,将摄像头切换为 640x480、15fps,并抓取接下来的 10 帧用于测试,列出每帧的编号与时间戳。
输出配置后的采集结果,包含参数设置和 10 帧的基本信息。
Guide for implementing camera streaming and photo capture with the DAT SDK.
.makeUIImage() to renderimport MWDATCamera
import MWDATCore
let wearables = Wearables.shared
let deviceSelector = AutoDeviceSelector(wearables: wearables)
// Or for a specific device: SpecificDeviceSelector(device: deviceId)
let deviceSession = try wearables.createSession(deviceSelector: deviceSelector)
try deviceSession.start()
// Wait for the device session to reach the started state
for await state in deviceSession.stateStream() {
if state == .started { break }
}
Once the DeviceSession is started, add a Stream capability:
let config = StreamConfiguration(
videoCodec: .raw,
resolution: .medium, // 504x896
frameRate: 24
)
guard let stream = try deviceSession.addStream(config: config) else {
// DeviceSession must be in the started state before adding a stream
return
}
| Resolution | Size |
|---|---|
.high | 720 x 1280 |
.medium | 504 x 896 |
.low | 360 x 640 |
Valid values: 2, 7, 15, 24, 30 FPS.
Lower resolution and frame rate yield higher visual quality due to less Bluetooth compression.
StreamState transitions: stopping → stopped → waitingForDevice → starting → streaming → paused
let stateToken = stream.statePublisher.listen { state in
Task { @MainActor in
switch state {
case .streaming:
// Stream is active, frames are flowing
case .waitingForDevice:
// Waiting for glasses to connect
case .stopped:
// Stream ended — release resources
case .paused:
// Temporarily suspended — keep connection, wait
default:
break
}
}
}
let frameToken = stream.videoFramePublisher.listen { frame in
guard let image = frame.makeUIImage() else { return }
Task { @MainActor in
self.previewImage = image
}
}
// Start the stream capability
Task { await stream.start() }
// Stop streaming
Task { await stream.stop() }
// Stop the parent device session when you're done with all capabilities
deviceSession.stop()
Capture a still photo while streaming:
// Listen for photo data
let photoToken = stream.photoDataPublisher.listen { photoData in
let imageData = photoData.data
// Convert to UIImage or save
}
// Trigger capture
stream.capturePhoto(format: .jpeg)
Resolution and frame rate are constrained by Bluetooth Classic bandwidth. The SDK automatically reduces quality when bandwidth is limited:
Request lower settings for higher visual quality per frame.
帮助你定位常见故障、兼容性问题并诊断状态机异常
帮助开发者梳理 Meta AI 应用注册与相机权限申请流程
帮助开发者完成 Meta 眼镜 SDK 安装配置并建立首次连接。
帮助用户管理设备会话状态、暂停恢复流程与在线可用性监控。
帮助用户构建含摄像头串流与拍照功能的完整 DAT 应用示例。
帮助开发者掌握 DAT SDK 的 Swift 规范、命名与异步开发模式
帮助用户配置摄像头会话与视频流,并完成拍照及分辨率帧率设置
从 RTSP/ONVIF 摄像头快速抓取画面帧或短视频片段,便于监控取证与分析。
指导你构建含会话创建、相机串流与拍照功能的完整 DAT 应用
在 macOS、iOS 模拟器和 Android 上录屏并提取关键帧,捕捉 UI 动态变化
连接并控制车间ESP32-CAM相机,拍照、查状态并切换闪光灯。
从视频中提取关键帧或短片段,便于分析、剪辑与内容制作。