Exemplo n.º 1
0
        private void btnPlay_Click(object sender, RoutedEventArgs e)
        {
            if (_isPlaying)
            {
                fdCanvas.EndUpdate();
                _warden.StopPreview();
                _isPlaying = false;
                _setUI();
            }
            else
            {
                btnPlay.IsEnabled = false;
                Task.Factory.StartNew(() =>
                {
                    int ret = _warden.StartPreview(_clsDevice, _funcFrameRecved, _visFuncFrameRecved);
                    if (_warden.visPreviewHandle >= 0)
                    {
                        _onvifDevice.ChangeConfig(_clsDevice.VIS_CameraIp, _clsDevice.VIS_OnvifPort, _clsDevice.VIS_Username, _clsDevice.VIS_Password);
                    }
                    return(ret);
                }).ContinueWith(x =>
                {
                    if (_warden.PreviewHandle >= 0)
                    {
                        fdCanvas.BeginUpdate(_warden.irDataWidth, _warden.irDataHeight, 0);
                        configImage(ref _clsDevice._bin);
                    }
                    if (_warden.visPreviewHandle >= 0)
                    {
                        fdCanvas.BeginUpdate(_warden.visDataWidth, _warden.visDataHeight, 1);
                    }
                    if (_warden.PreviewHandle >= 0 && _warden.visPreviewHandle >= 0)
                    {
                        fdCanvas.ChangeAlg(ref _clsFDConfig._bin);
                    }
                    _isPlaying = (0 == x.Result);
                    _setUI();


                    //
                    if (_warden.PreviewHandle >= 0 && _warden._bbConfig.enable == 0)
                    {
                        ConfigHSRPView.Instance.MyShow(_warden.UserHandle, ref _warden._basicInfo, true);
                    }
                }, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }