摄像头播放后,增加分辨率的显示
This commit is contained in:
@@ -293,51 +293,40 @@ public class CamerasController : ControllerBase
|
||||
return BadRequest("Device implies no controller");
|
||||
}
|
||||
|
||||
// 1. 获取单个设备详情(用于编辑回填)
|
||||
[HttpGet("{id}")]
|
||||
public IActionResult GetDevice(int id)
|
||||
{
|
||||
var cam = _manager.GetDevice(id);
|
||||
if (cam == null) return NotFound();
|
||||
return Ok(cam.Config); // 返回原始配置对象
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 5. 注册/更新进程的流需求 (A/B/C/D 场景核心)
|
||||
///// </summary>
|
||||
///// <remarks>
|
||||
///// 示例场景:
|
||||
///// - 主进程配置(B): { "appId": "Main_Config", "displayFps": 25, "analysisFps": 0 }
|
||||
///// - AI进程(C): { "appId": "AI_Core", "displayFps": 0, "analysisFps": 5 }
|
||||
///// </remarks>
|
||||
//[HttpPost("{id}/subscriptions")]
|
||||
//public IActionResult UpdateSubscription(long id, [FromBody] SubscriptionDto sub)
|
||||
// 2. 更新设备(保存功能)
|
||||
[HttpPut("{id}")]
|
||||
public async Task<IActionResult> UpdateDevice(int id, [FromBody] VideoSourceConfig config)
|
||||
{
|
||||
// 核心逻辑:先停止旧设备 -> 更新配置 -> 重新添加到容器 -> 如果之前在运行则重新启动
|
||||
await _manager.UpdateDeviceAsync(id, config);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
// 3. 清除特定设备的日志
|
||||
[HttpDelete("{id}/logs")]
|
||||
public IActionResult ClearLogs(int id)
|
||||
{
|
||||
var cam = _manager.GetDevice(id);
|
||||
cam?.ClearAuditLogs();
|
||||
return Ok();
|
||||
}
|
||||
|
||||
//// 4. 抓图诊断
|
||||
//[HttpGet("{id}/capture")]
|
||||
//public async Task<IActionResult> Capture(int id)
|
||||
//{
|
||||
// var device = _manager.GetDevice(id);
|
||||
// if (device == null) return NotFound();
|
||||
|
||||
// // 逻辑转换:将 "显示帧" 和 "分析帧" 映射到底层控制器的注册表
|
||||
|
||||
// // 1. 处理显示需求
|
||||
// string displayKey = $"{sub.AppId}_Display";
|
||||
// if (sub.DisplayFps > 0)
|
||||
// {
|
||||
// // 告诉控制器:这个 App 需要 X 帧用于显示
|
||||
// device.Controller.Register(displayKey, sub.DisplayFps);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 如果不需要,移除注册
|
||||
// device.Controller.Unregister(displayKey);
|
||||
// }
|
||||
|
||||
// // 2. 处理分析需求
|
||||
// string analysisKey = $"{sub.AppId}_Analysis";
|
||||
// if (sub.AnalysisFps > 0)
|
||||
// {
|
||||
// // 告诉控制器:这个 App 需要 Y 帧用于分析
|
||||
// device.Controller.Register(analysisKey, sub.AnalysisFps);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// device.Controller.Unregister(analysisKey);
|
||||
// }
|
||||
|
||||
// // 运维审计
|
||||
// device.AddAuditLog($"更新订阅策略 [{sub.AppId}]: Display={sub.DisplayFps}, Analysis={sub.AnalysisFps}");
|
||||
|
||||
// return Ok(new { Message = "订阅策略已更新", DeviceId = id });
|
||||
// var cam = _manager.GetDevice(id);
|
||||
// if (cam == null) return NotFound();
|
||||
// var bytes = await cam.CaptureCurrentFrameAsync();
|
||||
// return File(bytes, "image/jpeg");
|
||||
//}
|
||||
}
|
||||
Reference in New Issue
Block a user