// Initialize a new KinectSensor object var sensor = KinectSensor.GetDefault(); // Open a multi-source frame reader var reader = sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth); // Register a handler for the MultiSourceFrameArrived event reader.MultiSourceFrameArrived += (s, e) => { // Get the latest multi-source frame var frame = e.FrameReference.AcquireFrame(); // Check if the frame is valid if (frame != null) { // Get the color and depth frames using (var colorFrame = frame.ColorFrameReference.AcquireFrame()) using (var depthFrame = frame.DepthFrameReference.AcquireFrame()) { // Process the color and depth data if (colorFrame != null && depthFrame != null) { // Access the color and depth data var colorData = new byte[colorFrame.FrameDescription.LengthInPixels * 4]; var colorPixelFormat = colorFrame.FrameDescription.ColorPixelFormat; colorFrame.CopyConvertedFrameDataToArray(colorData, colorPixelFormat); var depthData = new ushort[depthFrame.FrameDescription.LengthInPixels]; depthFrame.CopyFrameDataToArray(depthData); } } } }; // Start reading frames from the Kinect device reader.MultiSourceFrameReaderStart();
// Initialize a new KinectSensor object var sensor = KinectSensor.GetDefault(); // Open a multi-source frame reader var reader = sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Body | FrameSourceTypes.Audio); // Register a handler for the MultiSourceFrameArrived event reader.MultiSourceFrameArrived += (s, e) => { // Get the latest multi-source frame var frame = e.FrameReference.AcquireFrame(); // Check if the frame is valid if (frame != null) { // Get the body and audio frames using (var bodyFrame = frame.BodyFrameReference.AcquireFrame()) using (var audioFrame = frame.AudioFrameReference.AcquireFrame()) { // Process the body and audio data if (bodyFrame != null && audioFrame != null) { // Access the body and audio data var bodies = new Body[bodyFrame.BodyFrameSource.BodyCount]; bodyFrame.GetAndRefreshBodyData(bodies); var audioData = new byte[audioFrame.LengthInBytes]; audioFrame.CopyFrameDataToArray(audioData); } } } }; // Start reading frames from the Kinect device reader.MultiSourceFrameReaderStart();This example shows how to use the "OpenMultiSourceFrameReader" class to read both body and Kinect audio data from a Kinect device. It registers a "MultiSourceFrameArrived" event handler that retrieves the latest multi-source frame and processes the body and audio data. Package Library: Microsoft.Kinect.