fix: 配置摄像头必须初始化
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user