// 以下为主页面代码 /// <summary> /// VCL相机初始化 /// </summary> private void VclCamInit() { LogHelper.WriteLog("vcl cam init start"); foreach (var c in AIThermometerAPP.Instance().cameras_config.Cameras) { // 如果不是自动启动,所有相机的状态设为离线 if (!AIThermometerAPP.Instance().AutoStartCam()) { c.state = CamContectingState.OFFLINE; } if (c.state == CamContectingState.ONLINE && AIThermometerAPP.Instance().AutoStartCam()) { // 如果摄像头Online 开始画面 if (CameraFactory.Instance().CreateCameraStream(c.Name, c.IP, c.StreamType) == null) { c.state = CamContectingState.OFFLINE; } // TODO 画面左侧的摄像头列表改变状态 在线 不在线 错误 需要完善 // TODO 状态从c。state获取, 名称也在c.name里。 } CameraController cameraController = new CameraController(c); cameraController.SetConnectHandler(this.ConnectHandler, this.DisconnectHandler); listView.Items.Add(cameraController); ViewButtonStateChanged(c.state); } LogHelper.WriteLog("vcl cam init end : " + CameraFactory.Instance().cl.Count + " cameras ready!"); }
private void Window_Loaded(object sender, RoutedEventArgs e) { if (AIThermometerAPP.Instance().AutoStartCam()) { if (CameraFactory.Instance().cl.Count > 0) { foreach (var ci in CameraFactory.Instance().cl) { this.vlcWindow.SetCamStream(ci); } } } //mc) this.vlcWindow.ChangeLeft(); // 设置全屏 this.WindowState = System.Windows.WindowState.Normal; this.WindowStyle = System.Windows.WindowStyle.None; this.ResizeMode = System.Windows.ResizeMode.NoResize; // this.Topmost = true; this.Left = 0.0; this.Top = 0.0; this.Width = System.Windows.SystemParameters.PrimaryScreenWidth; this.Height = System.Windows.SystemParameters.PrimaryScreenHeight; }
public void DisconnectHandler(string ip) { this.vlcWindow.DelCamStream(); CameraFactory.Instance().DelCamStream(ip); foreach (var c in AIThermometerAPP.Instance().cameras_config.Cameras) { c.state = CamContectingState.OFFLINE; ViewButtonStateChanged(c.state); } }
public void ConnectHandler(string ip) { foreach (var c in AIThermometerAPP.Instance().cameras_config.Cameras) { if (c.IP == ip) { var mc = CameraFactory.Instance().CreateCameraStream(c.Name, c.IP, c.StreamType); if (mc != null) { c.state = CamContectingState.ONLINE; this.vlcWindow.SetCamStream(mc); LogHelper.WriteLog("Connect handler cl count :" + CameraFactory.Instance().cl.Count); } } ViewButtonStateChanged(c.state); } this.vlcWindow.ChangeLeft(); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { foreach (var a in CameraFactory.Instance().cl) { foreach (var b in a) { b.Value.Stop(); //(b.Value as VlcCamera).vlcPlayer.Dispose(); } } CameraFactory.Instance().cl.Clear(); this.vlcWindow.Shutdown(); ServerHelper.Instance().Dispose(); //TempWarning.Instance().addedWarningInfo = null; //;aTimer.Close(); LogHelper.WriteLog("Closing APP"); Environment.Exit(0); //base.OnClosing(); }