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
            );

            kinectRecorder = new KinectRecorder(options, recordingStream);
            kinectRecorder.Start();
            Status = Service.RecordingManagerStatus.Recording;
            OnRecordingStatusChanged(new RecordingStatusChangedEventArg(fileId));
        }
 public void StopReplaying()
 {
     if (null != kinectReplay && kinectReplay.Started)
     {
         kinectReplay.Dispose();
     }
     Status = Service.RecordingManagerStatus.Standby;
 }
        public void StartReplaying(string fileId)
        {
            StopRecording();

            if (null != kinectReplay && kinectReplay.Started)
            {
                kinectReplay.Dispose();
            }

            if (null != SkeletonEventListener)
            {
                foreach (EventHandler<ReplaySkeletonFrameReadyEventArgs> eventHandler
                    in SkeletonEventListener)
                {
                    kinectReplay.SkeletonFrameReady -= eventHandler;
                }
            }

            if (null != ColorEventListener)
            {
                foreach (EventHandler<ReplayColorImageFrameReadyEventArgs> eventHandler
                    in ColorEventListener)
                {
                    kinectReplay.ColorImageFrameReady -= eventHandler;
                }
            }

            replayStream = new FileStream(
                filesUsed[fileId],
                FileMode.Open,
                FileAccess.Read
            );

            kinectReplay = new KinectReplay(replayStream);

            if (null != SkeletonEventListener)
            {
                foreach (EventHandler<ReplaySkeletonFrameReadyEventArgs> eventHandler
                    in SkeletonEventListener)
                {
                    kinectReplay.SkeletonFrameReady += eventHandler;
                }
            }

            if (null != ColorEventListener)
            {
                foreach (EventHandler<ReplayColorImageFrameReadyEventArgs> eventHandler
                    in ColorEventListener)
                {
                    kinectReplay.ColorImageFrameReady += eventHandler;
                }
            }

            kinectReplay.Start();
            Status = Service.RecordingManagerStatus.Replaying;
        }
        public void StopRecording()
        {
            if (null != kinectRecorder && kinectRecorder.IsRecording)
            {
                kinectRecorder.Stop();
            }

            if (null != recordingStream)
            {

                recordingStream.Close();
                recordingStream.Dispose();
                recordingStream = null;
            }
            Status = Service.RecordingManagerStatus.Standby;
        }
 public void RestartReplay()
 {
     if (null != kinectReplay && null != replayStream)
     {
         replayStream.Position = 0;
         kinectReplay.Stop();
         kinectReplay.Start();
     }
     Status = Service.RecordingManagerStatus.Replaying;
 }