我正在关注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作为返回值?我的申请是否不承认我的亲属?
答案 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。