private void saveGestureBtn_Click(object sender, RoutedEventArgs e)
        {
            // save to file
            string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat);

            string gesture_name = (gestureComboBox.SelectedItem as ComboBoxItem).Content.ToString();
            string myPhotos     = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
            string skeletonpath = myPhotos + "\\gdata\\" + gesture_name + "\\Kinect_skeleton_" + time + ".xml";

            // save data from start label to end label
            int start_id = int.Parse(replay_startLabel.Content.ToString());
            int end_id   = int.Parse(replay_endLabel.Content.ToString());

            // remove end part first so front id will not change
            gesture_capture_data.RemoveRange(end_id + 1, gesture_capture_data.Count - end_id - 1);
            gesture_capture_data.RemoveRange(0, start_id);
            KinectRecorder.WriteToSkeletonFile(skeletonpath, gesture_capture_data);

            gesture_capture_data.Clear();
            frame_id = 0;

            statusbarLabel.Content = "Save skeletons to file: " + skeletonpath;

            DeactivateReplay();
            saveGestureBtn.IsEnabled = false;
        }
Пример #2
0
        void DirectRecord(string targetFileName)
        {
            Stream recordStream = File.Create(targetFileName);

            recorder             = new KinectRecorder(KinectRecordOptions.Skeletons | KinectRecordOptions.Color, recordStream);
            recordOption.Content = "Stop Recording";
        }
Пример #3
0
 public void Record(SkeletonFrame frame)
 {
     if (null != KinectRecorder && KinectRecorder.IsRecording)
     {
         KinectRecorder.Record(frame);
     }
 }
        private void gestureReplayBtn_Click(object sender, RoutedEventArgs e)
        {
            if (kinect_sensor != null && kinect_sensor.IsRunning)
            {
                return;
            }

            OpenFileDialog dialog = new OpenFileDialog();

            dialog.DefaultExt = ".xml";
            dialog.FileName   = "Skeleton";
            dialog.Filter     = "Skeleton data file (.xml)|*.xml";

            Nullable <bool> result = dialog.ShowDialog();

            if (result == true)
            {
                string filename = dialog.FileName;
                // test: read skeleton data and display
                gesture_capture_data = KinectRecorder.ReadFromSkeletonFile(filename);

                statusbarLabel.Content = "Load gesture file from " + filename;

                ActivateReplay(gesture_capture_data);

                isReplay = true;
            }
        }
Пример #5
0
 public void Record(DepthImageFrame frame)
 {
     if (null != KinectRecorder && KinectRecorder.IsRecording)
     {
         KinectRecorder.Record(frame);
     }
 }
Пример #6
0
        public void StopRecording()
        {
            if (null != KinectRecorder && KinectRecorder.IsRecording)
            {
                KinectRecorder.Stop();
            }

            if (null != _recordingStream)
            {
                _recordingStream.Close();
                _recordingStream.Dispose();
                _recordingStream = null;
            }

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

            if (null != _dataOutStream)
            {
                _dataOutStream.Close();
                _dataOutStream.Dispose();
                _dataOutStream = null;
            }

            Status = Service.RecordingManagerStatus.Standby;
        }
Пример #7
0
        /// <summary>
        /// Save current kinect data
        /// </summary>
        private void saveBtn_Click(object sender, RoutedEventArgs e)
        {
            if (kinect_sensor == null || !kinect_sensor.IsRunning)
            {
                return;
            }


            string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat);

            string myPhotos = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);

            string colorpath    = myPhotos + "\\Kinect_color_" + time + ".png";
            string depthpath    = myPhotos + "\\Kinect_depth_" + time + ".txt";
            string skeletonpath = myPhotos + "\\Kinect_skeleton_" + time + ".xml";

            if (kinect_sensor.ColorStream.IsEnabled)
            {
                kinect_data_manager.SaveKinectData(kinect_data_manager.ColorStreamBitmap, colorpath, "COLOR");
            }
            if (kinect_sensor.DepthStream.IsEnabled)
            {
                kinect_data_manager.SaveKinectData(kinect_data_manager.depthPixels, depthpath, "DEPTH");
            }
            if (kinect_sensor.SkeletonStream.IsEnabled)
            {
                List <Skeleton> skeletonCollection = new List <Skeleton>();
                //skeletonCollection.Add(1, kinect_data_manager.skeletons);
                KinectRecorder.WriteToSkeletonFile(skeletonpath, skeletonCollection);
                statusbarLabel.Content = "Save skeletons to file: " + skeletonpath;
            }
            //kinect_data_manager.SaveKinectData(kinect_data_manager.skeletons, skeletonpath, "SKELETON");
        }
Пример #8
0
        void DirectRecord(string targetFileName)
        {
            Stream recordStream = File.Create(targetFileName);

            recorder = new KinectRecorder(KinectRecordOptions.Skeletons | KinectRecordOptions.Color |
                                          KinectRecordOptions.Depth, kinectSensor.CoordinateMapper,
                                          HandInputParams.ColorFocalLength, HandInputParams.DepthFocalLength, recordStream);
        }
Пример #9
0
 void StopRecord()
 {
     if (recorder != null)
     {
         recorder.Stop();
         recorder = null;
         return;
     }
 }
Пример #10
0
        private void Record_Click(object sender, RoutedEventArgs e)
        {
            string generatedName           = Guid.NewGuid().ToString();
            string recordStreamPathAndName = @"e:\" + generatedName + ".replay";

            this.recordStream = File.Create(recordStreamPathAndName);
            this.Recorder     = new KinectRecorder(KinectRecordOptions.Color | KinectRecordOptions.Depth | KinectRecordOptions.Skeletons, recordStream);
            this.Isrecording  = true;
        }
Пример #11
0
 private void Stop_Click(object sender, RoutedEventArgs e)
 {
     if (Recorder != null)
     {
         Isrecording = false;
         Recorder.Stop();
         Recorder = null;
     }
     System.Console.WriteLine("record stop!!!");
 }
Пример #12
0
        private void StartRecording()
        {
            // Start recording.
            this.RecordStream   = new BufferedStream(new FileStream(this.Preferences.KinectDataFile, FileMode.Create));
            this.KinectRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, this.RecordStream);

            //this.Preferences.KinectDataFile

            this.IsRecording = true;
        }
        private void Clean()
        {
            if (swipeGestureRecognizer != null)
            {
                swipeGestureRecognizer.OnGestureDetected -= OnGestureDetected;
            }

            if (audioManager != null)
            {
                audioManager.Dispose();
                audioManager = null;
            }

            if (parallelCombinedGestureDetector != null)
            {
                parallelCombinedGestureDetector.Remove(swipeGestureRecognizer);
                parallelCombinedGestureDetector.Remove(circleGestureRecognizer);
                parallelCombinedGestureDetector.Remove(triangleGestureRecognizer);

                parallelCombinedGestureDetector = null;
                //Add Triangle
            }

            CloseGestureDetector();

            ClosePostureDetector();

            if (voiceCommander != null)
            {
                voiceCommander.OrderDetected -= voiceCommander_OrderDetected;
                voiceCommander.Stop();
                voiceCommander = null;
            }

            if (recorder != null)
            {
                recorder.Stop();
                recorder = null;
            }

            if (eyeTracker != null)
            {
                eyeTracker.Dispose();
                eyeTracker = null;
            }

            if (kinectSensor != null)
            {
                kinectSensor.DepthFrameReady    -= kinectSensor_DepthFrameReady;
                kinectSensor.SkeletonFrameReady -= kinectRuntime_SkeletonFrameReady;
                kinectSensor.ColorFrameReady    -= kinectRuntime_ColorFrameReady;
                kinectSensor.Stop();
                kinectSensor = null;
            }
        }
Пример #14
0
 void StopRecord()
 {
     if (recorder != null)
     {
         recorder.Stop();
         System.IO.File.WriteAllLines(@"C:\TestAngles.txt", jointAngles);
         recorder             = null;
         recordOption.Content = "Record";
         return;
     }
 }
Пример #15
0
        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();
            }
        }
Пример #16
0
        public void Initialize()
        {
            string fakeFile = _fileLocation + Guid.NewGuid().ToString();

            _recordingStream = new FileStream(fakeFile, FileMode.OpenOrCreate);
            KinectRecorder   = new KinectRecorder(0, _recordingStream);

            _replayStream = new FileStream(fakeFile + "1", FileMode.OpenOrCreate);
            KinectReplay  = new KinectReplay(_replayStream);

            _dataOutStream = new FileStream(fakeFile + "2", FileMode.OpenOrCreate);
            DataRecorder   = new PostProcessedRecorder(_dataOutStream);
        }
Пример #17
0
 public void startRecordAndSaveTo(string filename)
 {
     IsRecording         = true;
     _filename           = filename;
     _isStoppingRecorder = false;
     try
     {
         _recorder = new KinectRecorder(KinectRecordOptions.Frames, filename, _device.sensor);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         IsRecording = false;
     }
 }
Пример #18
0
        public void stopRecord(Boolean noEvent = false)
        {
            _isStoppingRecorder = true;
            if (_recorder == null)
            {
                return;
            }
            IsRecording = false;
            _recorder.Stop();
            String fileName = _recorder.FileName;

            _recorder = null;
            if (!noEvent && RecordComplete != null)
            {
                RecordComplete(this, fileName);
            }
        }
Пример #19
0
        private void stopSkeletonRecordBtn_Click(object sender, RoutedEventArgs e)
        {
            // save record data to file
            string time = System.DateTime.Now.ToString("hh'-'mm'-'ss", CultureInfo.CurrentUICulture.DateTimeFormat);

            string myPhotos     = "D:"; //Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
            string skeletonpath = myPhotos + "\\Kinect_skeleton_" + time + ".xml";

            KinectRecorder.WriteToSkeletonFile(skeletonpath, kinect_data_manager.gesture);

            statusbarLabel.Content = "Save skeletons to file: " + skeletonpath;


            //clear data
            kinect_data_manager.gesture.Clear();
            // set state
            stopSkeletonRecordBtn.IsEnabled  = false;
            startSkeletonRecordBtn.IsEnabled = true;
        }
Пример #20
0
        public void StartRecording()
        {
            if (!Recording)
            {
                System.Diagnostics.Debug.WriteLine("Start recording...");
                string logFile      = Path.Combine(RecordPath, RecordFileName + ".log");
                string skeletonFile = Path.Combine(RecordPath, RecordFileName + "_skeleton.data");
                string colorFile    = Path.Combine(RecordPath, RecordFileName + "_color.data");
                string depthFile    = Path.Combine(RecordPath, RecordFileName + "_depth.data");
                LogStartTime(logFile);
                SkeletonRecordStream = new BufferedStream(new FileStream(skeletonFile, FileMode.Create));
                ColorRecordStream    = new BufferedStream(new FileStream(colorFile, FileMode.Create));
                DepthRecordStream    = new BufferedStream(new FileStream(depthFile, FileMode.Create));

                KinectSkeletonRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, SkeletonRecordStream);
                KinectColorRecorder    = new KinectRecorder(KinectRecordOptions.Color, ColorRecordStream);
                KinectDepthRecorder    = new KinectRecorder(KinectRecordOptions.Depth, DepthRecordStream);
                Recording = true;
            }
        }
Пример #21
0
        /// <summary>
        /// Cleans up everything.
        /// </summary>
        void Clean()
        {
            Log.Info("Cleaning.");

            if (recorder != null)
            {
                recorder.Close();
                recorder = null;
            }

            if (kinectSensor != null && kinectSensor.IsRunning)
            {
                kinectSensor.AllFramesReady -= kinectRuntime_AllFrameReady;
                kinectSensor.Stop();
                Log.Info("Stopped Kinect sensor.");
            }
            kinectSensor = null;

            StopReplay();
            inputServer.Stop();
        }
Пример #22
0
        /// <summary>
        /// Record a scene.
        /// </summary>
        private void Record()
        {
            // Stop recording.
            if (this.Mode == ControlMode.Record)
            {
                System.Diagnostics.Debug.WriteLine("Stop recording...");

                this.Mode = ControlMode.Normal;
                this.KinectRecorder.Stop();
            }
            // Start recording.
            else
            {
                System.Diagnostics.Debug.WriteLine("Start recording...");

                this.RecordStream   = new BufferedStream(new FileStream(this.Preferences.KinectDataFile, FileMode.Create));
                this.KinectRecorder = new KinectRecorder(KinectRecordOptions.Skeletons, this.RecordStream);
                this.Mode           = ControlMode.Record;

                //new KinectRecorder(KinectRecordOptions.Color | KinectRecordOptions.Skeletons, this.RecordStream);
            }
        }
Пример #23
0
        public async void StopRecordButton_Click(object sender, RoutedEventArgs e)
        {
            if (_recorder != null)
            {
                await _recorder.StopAsync();

                _recorder = null;

                //File.Copy(Properties.Paths.CurrentKdvrFile, Properties.Paths.CurrentReplayKdvrFile);
                Kinect.Instance.Player.OpenFile(Properties.Paths.CurrentKdvrFile);

                Scene.Instance.Duration = Kinect.Instance.Player.Duration;
                Scene.Instance.InitTimeLine();

                foreach (Person person in Scene.Instance.Persons)
                {
                    if (!person.HasBeenTracked)
                    {
                        continue;
                    }
                    //person.generatePostureIntervals();
                    //person.View.repaintIntervalGroups();
                    //MainWindow.Instance().timeLineContentGrid.Children.Add(person.View.postureGroupsGrid);
                }
                Interaction.Instance.GenerateIntervalGroups();
                Scene.Instance.Interaction = Interaction.Instance;
                var db = BackupDataContext.CreateConnection(Properties.Paths.CurrentDataFile);
                db.Database.EnsureCreated();
                //db.Scene.Add(Scene.Instance);
                //db.SaveChanges();

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

                System.Windows.Forms.DialogResult dialogResult =
                    System.Windows.Forms.MessageBox.Show(
                        "Escena grabada con éxito!",
                        "Grabación");
            }
        }
Пример #24
0
        private void loadSkeletonBtn_Click(object sender, RoutedEventArgs e)
        {
            if (kinect_sensor.IsRunning)
            {
                return;
            }

            OpenFileDialog dialog = new OpenFileDialog();

            dialog.DefaultExt = ".xml";
            dialog.FileName   = "Skeleton";
            dialog.Filter     = "Skeleton data file (.xml)|*.xml";

            Nullable <bool> result = dialog.ShowDialog();

            if (result == true)
            {
                string filename = dialog.FileName;
                // test: read skeleton data and display
                List <Skeleton> skeleton_data =
                    KinectRecorder.ReadFromSkeletonFile(filename);
                // save to data manager object
                kinect_data_manager.gesture = skeleton_data;

                int min_frame_id = 0;
                int max_frame_id = skeleton_data.Count;

                skeletonVideoSlider.IsEnabled = true;
                skeletonVideoSlider.Minimum   = min_frame_id;
                skeletonVideoSlider.Maximum   = max_frame_id;
                skeletonVideoSlider.Value     = min_frame_id;
                skeletonSliderLabel.Content   = min_frame_id.ToString();

                //kinect_data_manager.UpdateSkeletonData(skeleton_data[min_frame_id]);

                mode = KinectMode.Replay;
            }
        }
Пример #25
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));
        }
Пример #26
0
        private void RecordClick(object sender, RoutedEventArgs e)
        {
            if (IsRecording)
            {
                recorder.Stop();
                recorder    = null;
                IsRecording = false;
                Message     = "";
                return;
            }
            var saveFileDialog = new SaveFileDialog {
                Title = "Select filename", Filter = "Replay files|*.replay"
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return;
            }

            recorder = new KinectRecorder(RecordOptions, saveFileDialog.FileName, _kinectSensor);
            Message  = string.Format("Recording {0}", RecordOptions.ToString());
            recorder.StartAudioRecording();
            IsRecording = true;
        }
Пример #27
0
        private void previewBtn_Click(object sender, RoutedEventArgs e)
        {
            if (previewBtn.Content.ToString() == "Preview Stream")
            {
                if (kinect_sensor != null)
                {
                    // disable all other buttons
                    DeactivateReplay();
                    gestureCaptureBtn.IsEnabled = false;
                    gestureReplayBtn.IsEnabled  = false;
                    previewBtn.Content          = "Stop Stream";
                    isStreaming = true;
                    kinect_data_manager.ifShowJointStatus = true;

                    overlap_frame_rec_buffer.Clear();

                    kinect_sensor.Start();
                }
            }
            else
            {
                if (kinect_sensor != null)
                {
                    kinect_sensor.Stop();

                    gestureCaptureBtn.IsEnabled = true;
                    gestureReplayBtn.IsEnabled  = true;

                    isStreaming = false;
                    kinect_data_manager.ifShowJointStatus = false;

                    // save recorded frame to disk and save skeleton data
                    if (overlap_frame_rec_buffer != null && gesture_capture_data != null && saveVideoCheckBox.IsChecked.Value)
                    {
                        statusbarLabel.Content = "Saving video...";

                        // create video writer
                        int fwidth  = (int)groupBox3.Width + 20;
                        int fheight = (int)groupBox3.Height + 20;

                        SaveFileDialog saveDialog = new SaveFileDialog();
                        saveDialog.Filter           = "avi files (*.avi)|*.avi";
                        saveDialog.FilterIndex      = 2;
                        saveDialog.RestoreDirectory = true;

                        if (saveDialog.ShowDialog().Value)
                        {
                            string      videofile   = saveDialog.FileName.ToString();
                            VideoWriter videoWriter = new VideoWriter(videofile, CvInvoke.CV_FOURCC('M', 'J', 'P', 'G'), 15,
                                                                      fwidth, fheight, true);

                            // save video
                            if (videoWriter == null)
                            {
                                MessageBox.Show("Fail to save video. Check if codec has been installed.");
                            }
                            else
                            {
                                for (int i = 0; i < overlap_frame_rec_buffer.Count; i++)
                                {
                                    // write to video file
                                    Emgu.CV.Image <Bgr, byte> cvImg =
                                        new Emgu.CV.Image <Bgr, byte>(overlap_frame_rec_buffer[i] as Bitmap);

                                    videoWriter.WriteFrame <Bgr, byte>(cvImg);
                                }

                                videoWriter.Dispose();

                                statusbarLabel.Content = "Video saved to " + videofile;
                            }

                            // save skeleton
                            string skeletonpath = videofile + ".xml";
                            KinectRecorder.WriteToSkeletonFile(skeletonpath, gesture_capture_data);
                        }
                    }

                    gesture_capture_data.Clear();
                    overlap_frame_rec_buffer.Clear();

                    previewBtn.Content = "Preview Stream";

                    // save tracked elbow speed
                    //FileStream file = File.Open("d:\\temp\\test.txt", FileMode.Create);
                    //StreamWriter writer = new StreamWriter(file);
                    //for (int i = 0; i < motion_assessor.jointStatusSeq.Count; i++)
                    //    writer.WriteLine(motion_assessor.jointStatusSeq[i][JointType.HandRight].abs_speed);
                    //writer.Close();
                }
            }
        }
Пример #28
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;
            }
        }
Пример #29
0
 public void stopRecord(Boolean noEvent = false)
 {
     _isStoppingRecorder = true;
     if (_recorder == null) return;
     IsRecording = false;
     _recorder.Stop();
     String fileName = _recorder.FileName;
     _recorder = null;
     if (!noEvent && RecordComplete != null)
     {
         RecordComplete(this, fileName);
     }
 }
Пример #30
0
 public void startRecordAndSaveTo(string filename)
 {
     IsRecording = true;
     _filename = filename;
     _isStoppingRecorder = false;
     try
     {
         _recorder = new KinectRecorder(KinectRecordOptions.Frames, filename, _device.sensor);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         IsRecording = false;
     }
 }
Пример #31
0
		private void RecordClick(object sender, RoutedEventArgs e)
		{
			if (IsRecording)
			{
				recorder.Stop();
				recorder = null;
				IsRecording = false;
				Message = "";
				return;
			}
			var saveFileDialog = new SaveFileDialog { Title = "Select filename", Filter = "Replay files|*.replay" };
			if (saveFileDialog.ShowDialog() != true) return;

			recorder = new KinectRecorder(RecordOptions, saveFileDialog.FileName, _kinectSensor);
			Message = string.Format("Recording {0}", RecordOptions.ToString());
			recorder.StartAudioRecording();
			IsRecording = true;
		}
Пример #32
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;
            }
        }