I need to get the Color and Depth frames from an XEF file recorded using Kinect Studio.
My code for accessing the Color and Depth frames when using the Kinect directly looks like this:
_sensor = KinectSensor.GetDefault();
if (_sensor != null)
{
_sensor.Open();
_reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.Infrared | FrameSourceTypes.Body);
_reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
_coordinateMapper = _sensor.CoordinateMapper;
}
In private void Reader_MultiSourceFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e)
I do my magic, which works.
Now how do I go about that using a pre-recorded XEF file?
I got that I can load an XEF file like this:
var kStudioClient = KStudio.CreateClient();
var eventFile = kStudioClient.OpenEventFile(@"D:\Kinect Studio Recordings\20170922_083134_00.xef");
But how can I get a MultiSourceFrame from that?
Any help is greatly appreciated! Thanks!
You are on the right track with the KStudioClient API. If you haven't implemented it yourself already, there is also a
KStudioPlayback
class you should use to play back XEF clips asynchronously. I will not explain and give you exact code how to playback at this stage - the API is very easy to understand. Correct usage of this class will issueMultiSourceFrameArrived
events automatically, so you do now need to change the way you handle them.Here is everything you need to know to get up to speed with the
KStudioPlayback
class - KStudioPlayback class API. If you need code samples, post a comment, and I will get back to you.