MVP API 接口:
后台 PTZ 接口(可选):
维护人:TG Live
POST http://localhost:10050/api/camera/listPOST https://tg-live-game.pwtk.cc/api/camera/list描述:获取摄像头列表
ContentType:application/json
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| machineId | String | 否 | - | 机器 ID(可选) | machine_001 |
{
"machineId": "machine_001"
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | array | 否 | 响应数据 (ActualType: List) | ||
| └ cameraId | String | 否 | - | 摄像头 ID | cam_001 |
| └ name | String | 否 | - | 摄像头名称 | 主摄像头 |
| └ lssId | String | 否 | - | 绑定的 LSS 节点 ID | lss_001 |
| └ model | String | 否 | - | 摄像头型号 | DS-2CD2143G2-IS |
| └ rtspUrl | String | 否 | - | RTSP 推流地址 | rtsp://admin:password@192.168.1.100:554/Streaming/Channels/101 |
| └ channelNo | String | 否 | - | 通道号 | 1 |
| └ status | String | 否 | - | 摄像头状态: online, offline, connecting, failed, error, unknown | online |
| └ capability | String | 否 | - | 摄像头能力: switch_only, ptz_enabled | ptz_enabled |
| └ ptzSupported | Boolean | 否 | - | 是否支持 PTZ | true |
| └ remark | String | 否 | - | 备注 | |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": [
{
"cameraId": "cam_001",
"name": "主摄像头",
"lssId": "lss_001",
"model": "DS-2CD2143G2-IS",
"rtspUrl": "rtsp://admin:password@192.168.1.100:554/Streaming/Channels/101",
"channelNo": "1",
"status": "online",
"capability": "ptz_enabled",
"ptzSupported": true,
"remark": "string",
"enabled": true
}
]
}
无
维护人:TG Live
GET http://localhost:10050/api/camera/{cameraId}GET https://tg-live-game.pwtk.cc/api/camera/{cameraId}描述:获取摄像头信息
ContentType:application/x-www-form-urlencoded;charset=UTF-8
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | camera_001 |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | 响应数据 (ActualType: CameraDTO) | ||
| └ cameraId | String | 否 | - | 摄像头 ID | cam_001 |
| └ name | String | 否 | - | 摄像头名称 | 主摄像头 |
| └ lssId | String | 否 | - | 绑定的 LSS 节点 ID | lss_001 |
| └ model | String | 否 | - | 摄像头型号 | DS-2CD2143G2-IS |
| └ rtspUrl | String | 否 | - | RTSP 推流地址 | rtsp://admin:password@192.168.1.100:554/Streaming/Channels/101 |
| └ channelNo | String | 否 | - | 通道号 | 1 |
| └ status | String | 否 | - | 摄像头状态: online, offline, connecting, failed, error, unknown | online |
| └ capability | String | 否 | - | 摄像头能力: switch_only, ptz_enabled | ptz_enabled |
| └ ptzSupported | Boolean | 否 | - | 是否支持 PTZ | true |
| └ remark | String | 否 | - | 备注 | |
| └ enabled | Boolean | 否 | - | 是否启用 | true |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {
"cameraId": "cam_001",
"name": "主摄像头",
"lssId": "lss_001",
"model": "DS-2CD2143G2-IS",
"rtspUrl": "rtsp://admin:password@192.168.1.100:554/Streaming/Channels/101",
"channelNo": "1",
"status": "online",
"capability": "ptz_enabled",
"ptzSupported": true,
"remark": "string",
"enabled": true
}
}
无
维护人:TG Live
POST http://localhost:10050/api/camera/switchPOST https://tg-live-game.pwtk.cc/api/camera/switch描述:切换摄像头通道(MVP 核心)
ContentType:application/json
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| machineId | String | 是 | - | 机器 ID | machine_001 |
| channelId | String | 是 | - | 目标通道 ID | ch_001 |
{
"machineId": "machine_001",
"channelId": "ch_001"
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | 响应数据 (ActualType: ChannelDTO) | ||
| └ channelId | String | 否 | - | 通道 ID | ch_001 |
| └ name | String | 否 | - | 通道名称 | 主通道 |
| └ rtspUrl | String | 否 | - | RTSP 地址 | rtsp://192.168.1.100:554/stream1 |
| └ defaultView | Boolean | 否 | - | 是否默认视角 | true |
| └ status | String | 否 | - | 通道状态: ONLINE, OFFLINE | ONLINE |
| └ cameraId | String | 否 | - | 所属摄像头 ID | cam_001 |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {
"channelId": "ch_001",
"name": "主通道",
"rtspUrl": "rtsp://192.168.1.100:554/stream1",
"defaultView": true,
"status": "ONLINE",
"cameraId": "cam_001"
}
}
无
维护人:TG Live
GET http://localhost:10050/api/camera/currentGET https://tg-live-game.pwtk.cc/api/camera/current描述:获取当前活动通道
ContentType:application/x-www-form-urlencoded;charset=UTF-8
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| machineId | string | 是 | - | 机器 ID | machine_001 |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | 响应数据 (ActualType: ChannelDTO) | ||
| └ channelId | String | 否 | - | 通道 ID | ch_001 |
| └ name | String | 否 | - | 通道名称 | 主通道 |
| └ rtspUrl | String | 否 | - | RTSP 地址 | rtsp://192.168.1.100:554/stream1 |
| └ defaultView | Boolean | 否 | - | 是否默认视角 | true |
| └ status | String | 否 | - | 通道状态: ONLINE, OFFLINE | ONLINE |
| └ cameraId | String | 否 | - | 所属摄像头 ID | cam_001 |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {
"channelId": "ch_001",
"name": "主通道",
"rtspUrl": "rtsp://192.168.1.100:554/stream1",
"defaultView": true,
"status": "ONLINE",
"cameraId": "cam_001"
}
}
无
维护人:TG Live
POST http://localhost:10050/api/camera/{cameraId}/ptz/startPOST https://tg-live-game.pwtk.cc/api/camera/{cameraId}/ptz/start描述:开始 PTZ 控制(后台专用)
ContentType:application/x-www-form-urlencoded;charset=UTF-8
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| action | string | 是 | - | PTZ 动作 | up |
| speed | int32 | 是 | - | 速度(1-100) | 50 |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | - | 响应数据 (ActualType: Void) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {}
}
无
维护人:TG Live
POST http://localhost:10050/api/camera/{cameraId}/ptz/stopPOST https://tg-live-game.pwtk.cc/api/camera/{cameraId}/ptz/stop描述:停止 PTZ 控制(后台专用)
ContentType:application/x-www-form-urlencoded;charset=UTF-8
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | - | 响应数据 (ActualType: Void) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {}
}
无
与前端海康调试接口一致:直接传 pan/tilt/zoom 值
维护人:TG Live
POST http://localhost:10050/api/camera/{cameraId}/ptz/controlPOST https://tg-live-game.pwtk.cc/api/camera/{cameraId}/ptz/control描述:PTZ 直接控制(兼容前端 pan/tilt/zoom 方式)
与前端海康调试接口一致:直接传 pan/tilt/zoom 值
ContentType:application/json
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| pan | Integer | 否 | 100 | 水平移动速度 负值向左,正值向右 范围: -100 ~ 100 |
0 |
| tilt | Integer | 否 | 100 | 垂直移动速度 负值向下,正值向上 范围: -100 ~ 100 |
0 |
| zoom | Integer | 否 | 100 | 缩放速度 负值缩小,正值放大 范围: -100 ~ 100 |
0 |
| channel | Integer | 否 | - | 通道号(可选,默认 1) | 0 |
{
"pan": 0,
"tilt": 0,
"zoom": 0,
"channel": 0
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | object | 否 | - | 响应数据 (ActualType: Void) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": {}
}
无
异步获取摄像头的预置位列表,结果通过 Ably 推送返回。
预置位是摄像头保存的固定位置点,可快速跳转到该位置。
维护人:TG Live
GET http://localhost:10050/api/camera/control/{cameraId}/preset/listGET https://tg-live-game.pwtk.cc/api/camera/control/{cameraId}/preset/list描述:获取预置位列表
异步获取摄像头的预置位列表,结果通过 Ably 推送返回。
预置位是摄像头保存的固定位置点,可快速跳转到该位置。
ContentType:application/x-www-form-urlencoded;charset=UTF-8
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| channel | int32 | 否 | - | 通道号(可选,默认使用摄像头配置的通道) | 1 |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | string | 否 | - | 响应数据 (ActualType: String) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": "string"
}
无
控制摄像头快速移动到指定的预置位位置。
预置位编号从 1 开始,需确保该预置位已存在。
维护人:TG Live
POST http://localhost:10050/api/camera/control/{cameraId}/preset/gotoPOST https://tg-live-game.pwtk.cc/api/camera/control/{cameraId}/preset/goto描述:跳转到预置位
控制摄像头快速移动到指定的预置位位置。
预置位编号从 1 开始,需确保该预置位已存在。
ContentType:application/json
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| presetIndex | Integer | 是 | - | 预置位编号 | 1 |
{
"presetIndex": 1
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | string | 否 | - | 响应数据 (ActualType: String) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": "string"
}
无
将摄像头当前的 PTZ 位置保存为预置位。
如果指定的预置位编号已存在,将覆盖原有设置。
维护人:TG Live
POST http://localhost:10050/api/camera/control/{cameraId}/preset/setPOST https://tg-live-game.pwtk.cc/api/camera/control/{cameraId}/preset/set描述:设置预置位(保存当前位置)
将摄像头当前的 PTZ 位置保存为预置位。
如果指定的预置位编号已存在,将覆盖原有设置。
ContentType:application/json
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| presetIndex | Integer | 是 | - | 预置位编号 | 1 |
| presetName | String | 否 | 50 | 预置位名称(可选) Validate[max: 50; ] |
位置 1 |
{
"presetIndex": 1,
"presetName": "位置1"
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | string | 否 | - | 响应数据 (ActualType: String) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": "string"
}
无
删除摄像头的指定预置位。
删除后该预置位编号将不可用,直到重新设置。
维护人:TG Live
POST http://localhost:10050/api/camera/control/{cameraId}/preset/removePOST https://tg-live-game.pwtk.cc/api/camera/control/{cameraId}/preset/remove描述:删除预置位
删除摄像头的指定预置位。
删除后该预置位编号将不可用,直到重新设置。
ContentType:application/json
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | hikvision_ptz |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| presetIndex | Integer | 是 | - | 预置位编号 | 1 |
{
"presetIndex": 1
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | string | 否 | - | 响应数据 (ActualType: String) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": "string"
}
无
触发指定摄像头的记忆路线回放,摄像头将按录制顺序自动执行所有 PTZ 动作。
维护人:TG Live
POST http://localhost:10050/api/camera/{cameraId}/patrol/playPOST https://tg-live-game.pwtk.cc/api/camera/{cameraId}/patrol/play描述:回放记忆路线(前端用户接口)
触发指定摄像头的记忆路线回放,摄像头将按录制顺序自动执行所有 PTZ 动作。
ContentType:application/json
| 名称 | 必填 | 描述 | 示例值 |
|---|---|---|---|
| cameraId | 是 | 摄像头 ID | cam_001 |
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| tourId | String | 是 | - | 轨迹 ID | tour_001 |
| loopEnabled | Boolean | 否 | - | 覆盖循环设置:是否循环执行(可选,不传则使用轨迹配置) | true |
| loopCount | Integer | 否 | - | 覆盖循环设置:循环次数(可选,不传则使用轨迹配置) | 3 |
{
"tourId": "tour_001",
"loopEnabled": true,
"loopCount": 3
}
| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| success | Boolean | 否 | - | 请求是否成功 | true |
| errCode | String | 否 | - | 错误码(失败时返回) | |
| errMessage | String | 否 | - | 错误信息(失败时返回) | |
| data | string | 否 | - | 响应数据 (ActualType: String) |
{
"success": true,
"errCode": "string",
"errMessage": "string",
"data": "string"
}
无