Skip to content

设备接口

设备接口要求当前连接已有 session,并拥有对应 capability。device.listdevice.get 会按 auth_context.device_scope 过滤设备。

DeviceDescriptor

字段类型说明
device_idstring设备 ID。
modelstring设备型号。
display_namestring展示名称。
vidnumberUSB vendor ID。
pidnumberUSB product ID。
statusstring设备状态。
authorizedboolean是否在当前授权范围内。
supports_videoboolean是否支持视频预览。
features.image_transfer_protocolboolean是否支持图片传输协议。
resolutions[]array分辨率列表。

Resolution

字段类型说明
widthnumber预览宽度。
heightnumber预览高度。
real_widthnumber设备真实输出宽度。
real_heightnumber设备真实输出高度。
fpsnumber帧率。
pixel_formatstring视频帧格式,支持 mjpegjpegbgr24jpeg 会按 mjpeg 处理。
is_defaultboolean是否默认分辨率。

CaptureOutputCapabilities

device.open 响应可能额外返回 capture_output,用于描述当前打开设备支持的采集输出尺寸档位。客户端应以 device.open.data.capture_output.target_sizes 作为 profile.output.target_size 的可选值来源。

字段类型说明
target_size_supportedboolean当前设备是否支持目标输出尺寸档位。
target_sizes[]array可选目标输出尺寸档位列表。

OutputTargetSizeOption

字段类型说明
target_sizenumber目标尺寸档位值,传给 profile.output.target_size
widthnumber该档位对应的目标宽度。
heightnumber该档位对应的目标高度。
is_device_defaultboolean可选。是否为设备默认档位。

方法

方法参数响应 data说明
device.listdevices: DeviceDescriptor[]count: number获取当前会话可见设备。
device.getdevice_id: string 必填DeviceDescriptor + provider: string获取单个设备详情。
device.opendevice_id: string 必填,width?: numberheight?: numberfps?: numberpixel_format?: string=mjpeg,支持 mjpegjpegbgr24DeviceDescriptor + opened: booleanprovider,可选 capture_output打开设备。
device.closedevice_id: string 必填device_idclosedwas_openedstopped_streamstream_idprovider关闭设备,并自动停止当前连接下该设备的视频流。

device.listdevice.get 不保证返回 capture_output;需要设置采集输出尺寸时,建议先调用 device.open,再从打开设备的响应中选择支持的 target_size

设备事件

设备被移除时,Command WS 会向相关连接推送 device.removed。该事件会发送给已打开该设备或仍持有该设备视频流的连接;运行时会同步清理对应设备和视频状态。

事件payload说明
device.removeddevice_idreasonwas_openedwas_streamingts_ms设备已移除。

收到该事件后,客户端应停止预览 UI、清理当前设备选择,并重新调用 device.list 刷新设备列表。

json
{
  "event": "device.removed",
  "code": 0,
  "message": "ok",
  "payload": {
    "device_id": "mock-device-01",
    "reason": "hotplug_removed",
    "was_opened": true,
    "was_streaming": true,
    "ts_ms": 1710000000000
  },
  "ts": 1710000000
}

示例

json
{
  "request_id": "req-device-open-001",
  "method": "device.open",
  "params": {
    "device_id": "mock-device-01",
    "width": 1280,
    "height": 720,
    "fps": 15,
    "pixel_format": "mjpeg"
  }
}

成功响应示例:

json
{
  "request_id": "req-device-open-001",
  "code": 0,
  "message": "ok",
  "data": {
    "device_id": "mock-device-01",
    "model": "CZUR Mock",
    "display_name": "CZUR Mock Device",
    "vid": 7759,
    "pid": 10243,
    "status": "online",
    "authorized": true,
    "supports_video": true,
    "features": {
      "image_transfer_protocol": false
    },
    "resolutions": [],
    "opened": true,
    "provider": "czur-device-provider",
    "capture_output": {
      "target_size_supported": true,
      "target_sizes": [
        {
          "target_size": 500,
          "width": 2592,
          "height": 1944
        },
        {
          "target_size": 1600,
          "width": 4608,
          "height": 3456,
          "is_device_default": true
        }
      ]
    }
  },
  "ts": 1710000000
}

CZUR Open Platform Documentation