fix: 配置摄像头必须初始化

This commit is contained in:
SikongJueluo 2025-07-10 16:29:10 +08:00
parent 558a139593
commit 540f5c788d
No known key found for this signature in database
1 changed files with 29 additions and 39 deletions

View File

@ -166,51 +166,41 @@ public class HttpVideoStreamService : BackgroundService
try
{
await Task.Run(async () =>
lock (_cameraLock)
{
lock (_cameraLock)
// 关闭现有连接
if (_camera != null)
{
// 如果地址和端口没有变化,直接返回成功
if (_cameraAddress == address && _cameraPort == port && _camera != null)
{
logger.Info("摄像头配置未变化,保持当前连接");
return;
}
// 关闭现有连接
if (_camera != null)
{
logger.Info("关闭现有摄像头连接");
// Camera doesn't have Dispose method, set to null
_camera = null;
}
// 更新配置
_cameraAddress = address;
_cameraPort = port;
// 创建新的摄像头客户端
_camera = new Camera(_cameraAddress, _cameraPort);
logger.Info("摄像头配置已更新: {Address}:{Port}", _cameraAddress, _cameraPort);
logger.Info("关闭现有摄像头连接");
// Camera doesn't have Dispose method, set to null
_camera = null;
}
// Init Camera
{
var ret = await _camera.Init();
if (!ret.IsSuccessful)
{
logger.Error(ret.Error);
throw ret.Error;
}
// 更新配置
_cameraAddress = address;
_cameraPort = port;
if (!ret.Value)
{
logger.Error($"Camera Init Failed!");
throw new Exception($"Camera Init Failed!");
}
// 创建新的摄像头客户端
_camera = new Camera(_cameraAddress, _cameraPort);
logger.Info("摄像头配置已更新: {Address}:{Port}", _cameraAddress, _cameraPort);
}
// Init Camera
{
var ret = await _camera.Init();
if (!ret.IsSuccessful)
{
logger.Error(ret.Error);
throw ret.Error;
}
});
if (!ret.Value)
{
logger.Error($"Camera Init Failed!");
throw new Exception($"Camera Init Failed!");
}
}
return true;
}
catch (Exception ex)