控制 Node 设备的 USB 摄像头,支持单帧截图、流式推送、停止推流和关闭摄像头。使用场景:(1) 需要快速获取 Node 设备的一帧图像时,(2) 需要远程监控 Node 设备周围环境时,(3) 需要进行视觉识别或拍照截图时。
本 Skill 用于控制已配对 Android Node 设备的 USB 摄像头,支持高效单帧截图、流式推送 JPEG 帧到云端、停止推流和关闭摄像头。
camera.captureFrame)描述: 高效单帧截图。打开摄像头 → 获取第一帧 → 自动停止推流并关闭摄像头 → 返回图片 URL。适用于只需要一张图片的场景,无需手动管理摄像头生命周期。
参数:
参数名类型必填默认值说明widthnumber否设备默认分辨率宽度(像素)heightnumber否设备默认分辨率高度(像素)
返回:
json
{
"imageUrl": "http://<设备IP>:18790/images/capture_1234567890.jpg"
}
图片通过 Node 设备内嵌的 HTTP 服务器(端口 18790)提供访问,可直接通过 URL 下载 JPEG 文件。
错误码:
错误码说明处理建议CAPTURE_FAILED截图失败检查摄像头连接状态TIMEOUT调用超时检查设备网络或重试
描述: 打开 USB 摄像头并开始流式推送帧数据到云端。命令立即返回成功状态,帧数据通过 camera.frame 事件异步推送。如果指定的分辨率不支持,会自动降级到最近可用分辨率。
参数:
参数名类型必填默认值说明widthnumber否设备默认分辨率宽度(像素)heightnumber否设备默认分辨率高度(像素)
返回: 命令立即返回:
json
{
"status": "streaming_started"
}
帧数据通过 camera.frame node event 异步推送,每帧格式为:
json
{
"imageUrl": "http://<设备IP>:18790/images/frame_1234567890_0.jpg"
}
错误码:
错误码说明处理建议-1摄像头已在运行中先调用 camera.stopStreaming 或 camera.close-1摄像头未初始化先在 Node 设备上打开相机主界面-1摄像头错误重新打开 Node 设备的相机应用
描述: 停止摄像头推流,但保持摄像头打开状态。如需完全关闭,请调用 camera.close。
参数: 无
返回:
json
{
"ok": true,
"message": "预览数据回调已停止"
}
描述: 关闭并释放 USB 摄像头资源。注意:实际摄像头硬件由 Node 主界面生命周期管理,此命令仅停止流式回调。
参数: 无
返回:
json
{
"ok": true,
"message": "已停止数据回调"
}
使用 OpenClaw gateway node invoke API:
json
{
"action": "invoke",
"invokeCommand": "camera.captureFrame",
"invokeParamsJson": {
"width": 1280,
"height": 720
}
}
json
{
"action": "invoke",
"invokeCommand": "camera.open",
"invokeParamsJson": {
"width": 1280,
"height": 720
}
}
json
{
"action": "invoke",
"invokeCommand": "camera.stopStreaming",
"invokeParamsJson": {}
}
json
{
"action": "invoke",
"invokeCommand": "camera.close",
"invokeParamsJson": {}
}
text
1. camera.captureFrame {"width": 1920, "height": 1080}
2. 从返回结果中获取 imageUrl,通过 HTTP GET 下载图片
使用
camera.captureFrame无需手动管理摄像头生命周期,一条命令完成截图。
text
1. camera.open {"width": 1280, "height": 720}
2. 监听 camera.frame 事件,实时接收并处理每一帧
3. camera.stopStreaming {} (暂停推流)
4. camera.close {} (结束监控,释放资源)
text
1. camera.captureFrame {"width": 640, "height": 480} (低分辨率提高性能)
2. 通过返回的 imageUrl 下载图片,送入视觉模型进行识别
3. 如需多帧,重复步骤 1
text
1. camera.open {"width": 640, "height": 480}
2. 监听 camera.frame 事件,将每帧送入视觉模型
3. camera.stopStreaming {} (识别完成后停止推流)
4. camera.close {} (释放资源)
如果收到错误 "摄像头已在运行中,请先调用 stopStreaming 或 closeCamera":
camera.stopStreaming 停止当前推流camera.close 完全关闭后重新打开如果收到错误 "摄像头未初始化,请先打开 AngleCamera 主界面":
如果收到错误 "摄像头错误: xxx,请重新打开 AngleCamera":
如果指定的分辨率不被支持:
此 Skill 需要 Android Node 设备具备以下条件:
camera.close 或 camera.stopStreaming 释放资源camera.captureFrame 比 open→stop→close 更高效稳定http://<设备IP>:18790/images/<filename>.jpgcamera.open 使用 node event 推送帧数据:
{"status":"streaming_started"}camera.frame 事件异步推送到云端{"imageUrl":"http://<设备IP>:18790/images/frame_xxx.jpg"}camera.stopStreaming 或 camera.close 结束推送摄像头内部状态:
Idle: 未初始化,主界面未运行Opening: 正在打开中Opened: 已打开,可预览FallingBack: 分辨率降级中Closed: 已关闭Error: 错误状态