帮助用户构建含摄像头串流与拍照功能的完整 DAT 应用示例。
该技能材料显示其本质是一个开源的 iOS 示例/开发指南,且系统已标记为 prompt-only、无密钥、无远程端点,整体风险较低。需注意其主题涉及相机流与照片捕获,真实集成后会接触设备/媒体数据与本地开发环境能力,但仅凭现有材料未见明确高风险红旗。
材料与系统检查均表明无需密钥、token 或环境变量;未见凭证收集、存储或外传描述,凭证滥用风险低。
系统标注无远程端点,README 主要是本地集成说明;虽提到注册、流媒体与相机能力,但在提供材料中未声明向外部服务器发送用户数据。
该对象被判定为 prompt-only,材料是示例代码与接入说明,不是可直接执行的工具包装;未见要求在宿主环境中启动额外进程或获取异常系统执行权限。
功能主题明确涉及相机视频流和照片捕获;若开发者按指南实现,应用将接触摄像头画面、照片数据及相关 iOS 权限配置。此属该类应用的常规数据访问面,材料中未见超出声明功能的过度授权要求。
正面因素是 GitHub 开源、源码可审计;但仓库 star 为 0、许可证未声明、维护状态未知,且需通过 SPM 引入第三方 SDK,供应链成熟度与持续维护信息不足,建议在采用前进一步核验。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "sample-app-guide" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/meta-wearables-dat-ios/main/plugins/mwdat-ios/skills/sample-app-guide/SKILL.md 2. 保存为 ~/.claude/skills/sample-app-guide/SKILL.md 3. 装好后重载技能,告诉我可以用了
请指导我从零开始构建一个 DAT 应用,要求支持摄像头实时串流与照片拍摄,并按步骤说明项目结构、依赖安装、核心代码和运行方法。
一份分步骤的开发指南,包含初始化、关键模块实现与运行说明。
我已经完成 DAT 应用基础框架,请补全摄像头预览和拍照保存功能代码,并解释每个关键函数的作用。
可直接集成的示例代码,以及对摄像头调用、截图和保存流程的说明。
我的 DAT 应用无法正常打开摄像头或拍照,请帮我检查常见问题,并给出调试步骤、权限设置建议和修复方案。
一份面向开发者的排查清单,涵盖权限、设备兼容性、异常处理与修复建议。
Build an iOS DAT app with camera streaming and photo capture.
This walkthrough covers app setup, registration, streaming, and capture. Pair it with the CameraAccess sample.
https://github.com/facebook/meta-wearables-dat-iosMWDATCore, MWDATCamera, and MWDATMockDevice to your targetInfo.plist (see Getting Started)A typical DAT app has these components:
MyDATApp/
├── MyDATApp.swift # App entry point, SDK init
├── ViewModels/
│ ├── WearablesViewModel.swift # Registration, device management
│ └── StreamViewModel.swift # Streaming, photo capture
└── Views/
├── MainAppView.swift # Navigation
├── RegistrationView.swift # Registration UI
└── StreamView.swift # Video preview, capture button
import MWDATCore
@main
struct MyDATApp: App {
init() {
do {
try Wearables.configure()
} catch {
assertionFailure("Wearables SDK configuration failed: \(error)")
}
}
var body: some Scene {
WindowGroup {
MainAppView()
.onOpenURL { url in
Task {
_ = try? await Wearables.shared.handleUrl(url)
}
}
}
}
}
import MWDATCore
@MainActor
class WearablesViewModel: ObservableObject {
@Published var registrationState: String = "Unknown"
@Published var devices: [DeviceIdentifier] = []
private let wearables = Wearables.shared
func observeState() {
Task {
for await state in wearables.registrationStateStream() {
self.registrationState = "\(state)"
}
}
Task {
for await devices in wearables.devicesStream() {
self.devices = devices.map { $0.identifier }
}
}
}
func register() async {
try? await wearables.startRegistration()
}
func unregister() async {
try? await wearables.startUnregistration()
}
}
import MWDATCamera
import MWDATCore
@MainActor
class StreamViewModel: ObservableObject {
@Published var currentFrame: UIImage?
@Published var streamState: String = "Stopped"
@Published var capturedPhoto: Data?
private let wearables = Wearables.shared
private var deviceSession: DeviceSession?
private var stream: Stream?
func startStream() async {
let config = StreamConfiguration(
videoCodec: .raw,
resolution: .medium,
frameRate: 24
)
let selector = AutoDeviceSelector(wearables: wearables)
do {
let deviceSession = try wearables.createSession(deviceSelector: selector)
try deviceSession.start()
// Wait for the device session to reach the started state
for await state in deviceSession.stateStream() {
if state == .started { break }
}
guard let stream = try deviceSession.addStream(config: config) else { return }
self.deviceSession = deviceSession
self.stream = stream
} catch {
return
}
guard let stream else { return }
_ = stream.statePublisher.listen { [weak self] state in
Task { @MainActor in
self?.streamState = "\(state)"
}
}
_ = stream.videoFramePublisher.listen { [weak self] frame in
guard let image = frame.makeUIImage() else { return }
Task { @MainActor in
self?.currentFrame = image
}
}
…
帮助用户管理设备会话状态、暂停恢复流程与在线可用性监控。
帮助开发者掌握 DAT SDK 的 Swift 规范、命名与异步开发模式
连接摄像头进行视频流、抓取画面并灵活配置分辨率与帧率。
帮助你定位常见故障、兼容性问题并诊断状态机异常
帮助开发者梳理 Meta AI 应用注册与相机权限申请流程
帮助开发者完成 Meta 眼镜 SDK 安装配置并建立首次连接。
指导你构建含会话创建、相机串流与拍照功能的完整 DAT 应用
帮助用户配置摄像头会话与视频流,并完成拍照及分辨率帧率设置
帮助开发者掌握 DAT SDK Android 的 Kotlin 约定、结果处理与会话能力规范。
自动录制专业感网页应用界面演示视频,适合讲解、教程与产品展示
帮助你为 Power Apps 代码应用添加数据源或连接器,并引导到合适操作流程。
为 Power Apps 代码应用添加 Dataverse 表,并生成 TypeScript 模型与服务。