Вы можете инициализировать среду выполнения Kinect с флагом RuntimeOptions.UseSkeletalTracking для получения данных отслеживания скелета с устройства:
var runtime = new Runtime();
runtime.Initialize(RuntimeOptions.UseSkeletalTracking| RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseColor);
Затем подписаться на событие SkeletonFrameReady:
runtime.SkeletonFrameReady += nui_SkeletonFrameReady;
Этособытие будет происходить непрерывно, и вам нужно будет перебрать коллекцию из шести возможных скелетов в коллекции SkeletonFrame, чтобы определить, отслеживаются ли какие-либо из них.
void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
SkeletonFrame allSkeletons = e.SkeletonFrame;
//get the first tracked skeleton
SkeletonData skeleton = (from s in allSkeletons.Skeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();
if skeleton != null
{
// Start recording audio, etc
}
}
Дополнительные сведения и примеры приведены в этом видео на канале 9:
Основы отслеживания скелета