/// <summary> /// The KinectHelper constructor /// </summary> public KinectHelper() { kinectSensor = KinectSensor.GetDefault(); if (kinectSensor != null) { kinectSensor.Open(); if (kinectSensor.IsOpen) { // grab the audio stream IReadOnlyList <AudioBeam> audioBeamList = this.kinectSensor.AudioSource.AudioBeams; Stream audioStream = audioBeamList[0].OpenInputStream(); this.convertStream = new KinectAudioStream(audioStream); kinectBody = kinectSensor.BodyFrameSource.OpenReader(); kinectColor = kinectSensor.ColorFrameSource.OpenReader(); kinectDepth = kinectSensor.DepthFrameSource.OpenReader(); kinectInfrared = kinectSensor.InfraredFrameSource.OpenReader(); } else { throw new Exception("Kinect - Cannot open the Kinect Sensor to receive data!"); } } else { throw new Exception("Kinect - Cannot find a Kinect Sensor to open!"); } }
/// <summary> /// Dispose the kinect and it's readers /// </summary> public void Dispose() { if (kinectBody != null) { kinectBody.Dispose(); kinectBody = null; } if (kinectColor != null) { kinectColor.Dispose(); kinectColor = null; } if (kinectDepth != null) { kinectDepth.Dispose(); kinectDepth = null; } if (kinectInfrared != null) { kinectInfrared.Dispose(); kinectInfrared = null; } if (convertStream != null) { convertStream.Close(); convertStream.Dispose(); convertStream = null; } if (kinectSensor != null) { kinectSensor.Close(); kinectSensor = null; } if (speechEngine != null) { speechEngine.Dispose(); speechEngine = null; } }