Ejemplo n.º 1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            kinect = new KinectSource();
            kinect.OnKinectReadyToStart += kinect_OnKinectReadyToStart;

            cbKinectDevice.Items.Add("0");

            if (cbKinectDevice.Items.Count > 0)
            {
                cbKinectDevice.SelectedIndex = 0;
            }

            foreach (var device in VideoCapture1.Audio_CaptureDevicesInfo)
            {
                if (device.Name.ToUpper().Contains("XBOX"))
                {
                    cbAudioCaptureDevice.Items.Add(device.Name);
                }
            }

            if (cbAudioCaptureDevice.Items.Count > 0)
            {
                cbAudioCaptureDevice.SelectedIndex = 0;
                cbAudioCaptureDevice_SelectedIndexChanged(null, null);
            }
        }
Ejemplo n.º 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            kinect = new KinectSource();
            kinect.OnKinectReadyToStart += kinect_OnKinectReadyToStart;
            kinect.OnGestureDetected    += kinect_OnGestureDetected;

            for (int i = 0; i < kinect.DevicesCount; i++)
            {
                cbKinectDevice.Items.Add(i.ToString(CultureInfo.InvariantCulture));
            }

            if (cbKinectDevice.Items.Count > 0)
            {
                cbKinectDevice.SelectedIndex = 0;
            }

            cbVideoSourceFormat.SelectedIndex = 0;
            cbDepthSourceFormat.SelectedIndex = 0;

            foreach (var device in VideoCapture1.Audio_CaptureDevicesInfo)
            {
                if (device.Name.Contains("Kinect"))
                {
                    cbAudioCaptureDevice.Items.Add(device);
                }
            }

            if (cbAudioCaptureDevice.Items.Count > 0)
            {
                cbAudioCaptureDevice.SelectedIndex = 0;
                cbAudioCaptureDevice_SelectedIndexChanged(null, null);
            }
        }
Ejemplo n.º 3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Text += " (SDK v" + VideoCapture1.SDK_Version + ", " + VideoCapture1.SDK_State + ")";

            tmRecording.Elapsed += (senderx, args) =>
            {
                UpdateRecordingTime();
            };

            kinect = new KinectSource();
            kinect.OnKinectReadyToStart += kinect_OnKinectReadyToStart;
            kinect.OnGestureDetected    += kinect_OnGestureDetected;

            for (int i = 0; i < kinect.DevicesCount; i++)
            {
                cbKinectDevice.Items.Add(i.ToString(CultureInfo.InvariantCulture));
            }

            if (cbKinectDevice.Items.Count > 0)
            {
                cbKinectDevice.SelectedIndex = 0;
            }

            cbVideoSourceFormat.SelectedIndex = 0;
            cbDepthSourceFormat.SelectedIndex = 0;
            cbOutputFormat.SelectedIndex      = 7;

            foreach (var device in VideoCapture1.Audio_CaptureDevicesInfo)
            {
                if (device.Name.Contains("Kinect"))
                {
                    cbAudioCaptureDevice.Items.Add(device);
                }
            }

            if (cbAudioCaptureDevice.Items.Count > 0)
            {
                cbAudioCaptureDevice.SelectedIndex = 0;
                cbAudioCaptureDevice_SelectedIndexChanged(null, null);
            }

            edOutput.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VisioForge\" + "output.mp4";
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Execute shutdown tasks
        /// </summary>
        private void Close()
        {
            _timer?.Change(Timeout.Infinite, Timeout.Infinite);

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

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

            if (_colorFrameDumper != null)
            {
                _colorFrameDumper.Close();
                _colorFrameDumper = null;
            }
        }
Ejemplo n.º 5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Text += " (SDK v" + VideoCapture1.SDK_Version + ", " + VideoCapture1.SDK_State + ")";

            tmRecording.Elapsed += (senderx, args) =>
            {
                UpdateRecordingTime();
            };

            cbOutputFormat.SelectedIndex = 7;

            kinect = new KinectSource();
            kinect.OnKinectReadyToStart += kinect_OnKinectReadyToStart;

            cbKinectDevice.Items.Add("0");

            if (cbKinectDevice.Items.Count > 0)
            {
                cbKinectDevice.SelectedIndex = 0;
            }

            foreach (var device in VideoCapture1.Audio_CaptureDevicesInfo)
            {
                if (device.Name.ToUpper().Contains("XBOX"))
                {
                    cbAudioCaptureDevice.Items.Add(device.Name);
                }
            }

            if (cbAudioCaptureDevice.Items.Count > 0)
            {
                cbAudioCaptureDevice.SelectedIndex = 0;
                cbAudioCaptureDevice_SelectedIndexChanged(null, null);
            }

            edOutput.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VisioForge\" + "output.mp4";
        }
Ejemplo n.º 6
0
        public void Run()
        {
            try
            {
                _kinectSource           = new KinectSource();
                _kinectSource.FrameSync = Synchronize;
                _kinectSource.FrameProcessExceptionEvent += e =>
                {
                    Console.Error.WriteLine("Error: " + e.Message);
                    Terminate();
                };
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Error initializing Kinect: " + e.Message);
                Cleanup();
                return;
            }

            // initialize dumpers
            try
            {
                _bodyFrameDumper = new BodyFrameDumper(_kinectSource, BaseOutputFile + BodyDataOutputFileSuffix);
                if (DumpVideo)
                {
                    _colorFrameDumper = new ColorFrameDumper(_kinectSource, BaseOutputFile + ColorDataOutputFileSuffix);
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Error preparing dumpers: " + e.Message);
                Cleanup();
                return;
            }

            Console.WriteLine("Starting capture");
            Console.WriteLine($"Ouput skeleton data in file {BaseOutputFile + BodyDataOutputFileSuffix}");
            if (DumpVideo)
            {
                Console.WriteLine($"Video stream @{_kinectSource.ColorFrameDescription.Width}x{_kinectSource.ColorFrameDescription.Height} outputed in file {BaseOutputFile + ColorDataOutputFileSuffix}");
            }
            Console.WriteLine("Press X, Q or Control + C to stop capture");
            Console.WriteLine();

            Console.WriteLine("Capture rate(s):");
            // write status in console every seconds
            _timer = new Timer(o =>
            {
                Console.Write($"{_bodyFrameDumper.BodyCount} Skeleton(s) @ { _kinectSource.BodySourceFps:F1} Fps");
                if (DumpVideo)
                {
                    Console.Write($" - Color Frames @ { _kinectSource.ColorSourceFps:F1} Fps");
                }
                Console.Write("\r");
            }, null, 1000, 1000);

            // start capture
            _kinectSource.Start();

            // wait for X, Q or Ctrl+C events to exit
            Console.CancelKeyPress += (sender, args) => Cleanup();
            while (true)
            {
                // Start a console read operation. Do not display the input.
                var cki = Console.ReadKey(true);

                // Exit if the user pressed the 'X', 'Q' or ControlC key.
                if (cki.Key == ConsoleKey.X || cki.Key == ConsoleKey.Q)
                {
                    break;
                }
            }
            Cleanup();
        }