以编程方式检测Kinect类型(Xbox或PC)

时间:2014-03-29 12:39:58

标签: c# kinect

这应该非常简单,但快速的Google没有提供任何有用的内容,我看不到Microsoft.Kinect.KinectSensor上看起来有用的任何成员。

我正在编写一个使用Kinect进行某些手势控制的应用程序。它适用于Kinect的Xbox或PC版本,但Xbox版本不支持“近距离模式”,因此用户必须回到一定距离。我想在用户启动程序时让用户知道这一点。

是否可以检测到哪个版本的Kinect已连接?我在Visual Studio的调试输出中收到一条消息,告诉我我已经连接了一个Xbox版本,因此它必须在某处检查,但我没有看到任何信息可供我的代码使用。

1 个答案:

答案 0 :(得分:2)

当您尝试使用Xbox版本不支持的功能时,会抛出InvalidOperation。当您捕获该异常时,您可以确定已连接Xbox kinect。

 try
 {
   sensor.DepthStream.Range = DepthRange.Near;
   sensor.SkeletonStream.EnableTrackingInNearRange = true;
 }
 catch (InvalidOperationException)
 {
   // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
   sensor.DepthStream.Range = DepthRange.Default;
   sensor.SkeletonStream.EnableTrackingInNearRange = false;
 }