KinectSensor.KinectSensors.Count无法识别连接的kinect?

时间:2016-04-07 03:54:18

标签: c# visual-studio kinect nullreferenceexception

我正在使用以下用户界面编写我的第一个Kinect应用程序。 Kinect User Interface

我正在关注this教程以获取更多背景信息。

该应用程序的概念仅包括将Kinect的摄像头集成到桌面应用程序中。我认为可能需要注意的是,我有一个Kinect for Xbox One及其相应的适配器使用Kinect SDK和Toolkit Version 1.8

按钮事件处理的代码如下:

    private void btnStream_Click(object sender, EventArgs e)
    {
        if (btnStream.Text == "Stream")
        {

            if (KinectSensor.KinectSensors.Count > 0)
            {

                ksensor = KinectSensor.KinectSensors[0];
                KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged;

            }
            ksensor.Start();
            lblConnectionID.Text = ksensor.DeviceConnectionId;

        }
        else
        {
            if (ksensor != null && ksensor.IsRunning)
            {
                ksensor.Stop();
                this.btnStream.Text = "Stream";
                this.pbStream.Image = null;
            }
        }

    }

    private void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e)
    {
        this.lblStatus.Text = ksensor.Status.ToString(); 
    }

我从Visual Studio

收到以下错误
  

未处理的类型' System.NullReferenceException'发生在WindowsFormsApplication1.exe

附加信息:未将对象引用设置为对象的实例。

错误指向这行代码:

ksensor.Start();

保证ksensor变量声明如下:

private KinectSensor ksensor;

我的问题是为什么我的变量KinectSensor.KinectSensors.Count可能为0,而我应该将1作为返回值?我的申请是否不承认我的亲属?

1 个答案:

答案 0 :(得分:1)

  

我认为重要的是要注意我有一个Kinect用于Xbox One及其相应的适配器使用Kinect SDK和Toolkit Version 1.8

问题是Microsoft Kinect SDK 1.8不符合Kinect for Xbox One(请参阅this link)。

您应该安装Kinect SDK 2.0(可在this link下载)。或者,如果您想使用Kinect SDK 1.8学习该教程,则应购买旧的Kinect for Xbox 360