【发布时间】:2014-06-11 11:08:04
【问题描述】:
这段代码有什么问题?我已经完全照原样从书中复制了代码,不幸的是它不起作用。我得到了这个异常,我不知道如何解决它。例外是这一行
KinectSensor sensor = KinectSensor.KinectSensors[0];
例外是:索引超出范围。必须是非负数且小于集合的大小。
这是完整的代码:
using Microsoft.Kinect;
namespace ConsoleApplication4
{
internal class Program
{
private static void Main(string[] args)
{
try
{
KinectSensor sensor = KinectSensor.KinectSensors[0];
sensor.DepthStream.Enable();
sensor.DepthFrameReady += sensor_DepthFrameReady;
// make it look like The Matrix
Console.ForegroundColor = ConsoleColor.Green;
// start the data streaming
sensor.Start();
while (Console.ReadKey().Key != ConsoleKey.Spacebar)
{
}
}
catch (Exception)
{
throw;
}
}
private static void sensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
{
using (var depthFrame = e.OpenDepthImageFrame())
{
if (depthFrame == null)
return;
short[] bits = new short[depthFrame.PixelDataLength];
depthFrame.CopyPixelDataTo(bits);
foreach (var bit in bits)
Console.Write(bit);
}
}
}
}
【问题讨论】:
-
有什么异常>
-
为什么人们总是发布带有“我的代码抛出异常”行的问题,而不包括问题中的详细信息?知道问题出在哪里的唯一方法是运行提供的代码,大多数情况下这些代码并不完整,或者需要我们不知道的引用。
-
我建议阅读您的例外中的文字。如果不明白是什么意思,google 'index out of range'