public async void RecordButton_Click(object sender, RoutedEventArgs e)
        {
            if (_recorder == null)
            {
                if (Scene.Instance != null)
                {
                    System.Windows.Forms.DialogResult dialogResult =
                        System.Windows.Forms.MessageBox.Show(
                            "Estás seguro de grabar una nueva escena?",
                            "Has guardado los datos de la escena actual?",
                            System.Windows.Forms.MessageBoxButtons.YesNo);
                    if (dialogResult == System.Windows.Forms.DialogResult.No)
                    {
                        return;
                    }
                }

                MainWindow.Instance().FromSensorRadioButton.IsChecked = true;

                //if (File.Exists(Properties.Paths.asd)) File.Delete(Properties.Paths.asd);
                if (Kinect.Instance.Player.IsOpen)
                {
                    Kinect.Instance.Player.Close();
                }
                if (File.Exists(Properties.Paths.CurrentKdvrFile))
                {
                    File.Delete(Properties.Paths.CurrentKdvrFile);
                }
                if (File.Exists(Properties.Paths.CurrentDataFile))
                {
                    File.Delete(Properties.Paths.CurrentDataFile);
                }


                _recorder = new KinectRecorder(File.Open(Properties.Paths.CurrentKdvrFile, FileMode.Create), _sensor);
                _recorder.EnableBodyRecorder     = true;
                _recorder.EnableColorRecorder    = true;
                _recorder.EnableDepthRecorder    = false;
                _recorder.EnableInfraredRecorder = false;

                _recorder.ColorRecorderCodec              = new JpegColorCodec();
                _recorder.ColorRecorderCodec.OutputWidth  = 1280;
                _recorder.ColorRecorderCodec.OutputHeight = 720;


                string sceneName = DateTime.Now.ToString("yyyy-MM-dd _ hh-mm-ss");


                Scene.CreateFromRecord(sceneName);

                _recorder.Start();
            }
        }
示例#2
0
        private void StartRecording(KinectRecordOptions options)
        {
            StopReplaying();
            StopRecording();

            string fileId = Guid.NewGuid().ToString();

            FilesUsed.Add(fileId, _fileLocation + fileId);

            if (null != KinectRecorder && KinectRecorder.IsRecording)
            {
                KinectRecorder.Stop();
            }

            _recordingStream = new FileStream(
                FilesUsed[fileId],
                FileMode.OpenOrCreate
                );

            if (null != DataRecorder && DataRecorder.IsRecording)
            {
                DataRecorder.Stop();
            }

            _dataOutStream = new FileStream(
                FilesUsed[fileId] + "_data",
                FileMode.OpenOrCreate
                );

            KinectRecorder = new KinectRecorder(options, _recordingStream);
            KinectRecorder.Start();

            DataRecorder = new PostProcessedRecorder(_dataOutStream);
            DataRecorder.Start();

            Status = Service.RecordingManagerStatus.Recording;
            OnRecordingStatusChanged(new RecordingStatusChangedEventArg(fileId));
        }
示例#3
0
        async void RecordButton_Click(object sender, RoutedEventArgs e)
        {
            if (_recorder == null)
            {
                var dlg = new SaveFileDialog()
                {
                    FileName   = DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss"),
                    DefaultExt = ".kdvr",
                    Filter     = "KinectEx.DVR Files (*.kdvr)|*.kdvr"
                };

                if (dlg.ShowDialog().GetValueOrDefault())
                {
                    _recorder = new KinectRecorder(File.Open(dlg.FileName, FileMode.Create), _sensor);
                    _recorder.EnableBodyRecorder     = BodyCheckBox.IsChecked.GetValueOrDefault();
                    _recorder.EnableColorRecorder    = ColorCheckBox.IsChecked.GetValueOrDefault();
                    _recorder.EnableDepthRecorder    = DepthCheckBox.IsChecked.GetValueOrDefault();
                    _recorder.EnableInfraredRecorder = InfraredCheckBox.IsChecked.GetValueOrDefault();

                    // NOTE : Default ColorRecorderCodec is Raw @ 1920 x 1080. Only need to change the
                    //        bits that differ from the default.

                    int colorCompressionType = ColorCompressionCombo.SelectedIndex / 3;
                    int colorCompressionSize = ColorCompressionCombo.SelectedIndex % 3;
                    if (colorCompressionType == 1)
                    {
                        _recorder.ColorRecorderCodec = new JpegColorCodec();
                    }
                    if (colorCompressionSize == 1) // 1280 x 720
                    {
                        _recorder.ColorRecorderCodec.OutputWidth  = 1280;
                        _recorder.ColorRecorderCodec.OutputHeight = 720;
                    }
                    else if (colorCompressionSize == 2) // 640 x 360
                    {
                        _recorder.ColorRecorderCodec.OutputWidth  = 640;
                        _recorder.ColorRecorderCodec.OutputHeight = 360;
                    }

                    _recorder.Start();

                    RecordButton.Content            = "Stop Recording";
                    BodyCheckBox.IsEnabled          = false;
                    ColorCheckBox.IsEnabled         = false;
                    DepthCheckBox.IsEnabled         = false;
                    ColorCompressionCombo.IsEnabled = false;
                }
            }
            else
            {
                RecordButton.IsEnabled = false;

                await _recorder.StopAsync();

                _recorder = null;

                RecordButton.Content            = "Record";
                RecordButton.IsEnabled          = true;
                BodyCheckBox.IsEnabled          = true;
                ColorCheckBox.IsEnabled         = true;
                DepthCheckBox.IsEnabled         = true;
                ColorCompressionCombo.IsEnabled = true;
            }
        }
示例#4
0
        async void RecordButton_Click(object sender, RoutedEventArgs e)
        {
            if (_recorder == null)
            {
                var picker = new FileSavePicker();
                picker.FileTypeChoices.Add("KinectEx.DVR Files", new List <string>()
                {
                    ".kdvr"
                });
                picker.DefaultFileExtension = ".kdvr";
                picker.SuggestedFileName    = DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss");

                var file = await picker.PickSaveFileAsync();

                if (file != null)
                {
                    // NOTE : Unlike the WPF sample which uses the "Automatic" mode, this example
                    //        shows the use of the manual recording mode and does some work to
                    //        optimize the recording process. The result is a better experience
                    //        for this application and a better recording because fewer frames
                    //        end up getting lost.
                    _recorder = new KinectRecorder(await file.OpenStreamForWriteAsync());

                    // NOTE : Default ColorRecorderCodec is Raw @ 1920 x 1080. Only need to change the
                    //        bits that differ from the default.

                    int colorCompressionType = ColorCompressionCombo.SelectedIndex / 3;
                    int colorCompressionSize = ColorCompressionCombo.SelectedIndex % 3;
                    if (colorCompressionType == 1)
                    {
                        _recorder.ColorRecorderCodec = new JpegColorCodec();
                    }
                    if (colorCompressionSize == 1) // 1280 x 720
                    {
                        _recorder.ColorRecorderCodec.OutputWidth  = 1280;
                        _recorder.ColorRecorderCodec.OutputHeight = 720;
                    }
                    else if (colorCompressionSize == 2) // 640 x 360
                    {
                        _recorder.ColorRecorderCodec.OutputWidth  = 640;
                        _recorder.ColorRecorderCodec.OutputHeight = 360;
                    }

                    _recorder.Start();

                    RecordButton.Content            = "Stop Recording";
                    BodyCheckBox.IsEnabled          = false;
                    ColorCheckBox.IsEnabled         = false;
                    DepthCheckBox.IsEnabled         = false;
                    InfraredCheckBox.IsEnabled      = false;
                    ColorCompressionCombo.IsEnabled = false;
                }
            }
            else
            {
                RecordButton.IsEnabled = false;

                await _recorder.StopAsync();

                _recorder = null;

                RecordButton.Content            = "Record";
                RecordButton.IsEnabled          = true;
                BodyCheckBox.IsEnabled          = true;
                ColorCheckBox.IsEnabled         = true;
                DepthCheckBox.IsEnabled         = true;
                InfraredCheckBox.IsEnabled      = true;
                ColorCompressionCombo.IsEnabled = true;
            }
        }