当我尝试运行我的骨骼跟踪代码来测试我添加的以下代码行时,它崩溃并显示错误。
void sensor_AllFramesReady(object sender, AllFramesReadyEventArgs e)
{
if (closing)
{
return;
}
//Get a skeleton
Skeleton first = GetFirstSkeleton(e);
if (first == null)
{
return;
}
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
//if (skeletonFrame == null)
//{
// return;
//}
this.recordStream = new MemoryStream(100);
KinectRecorder Recorder = new KinectRecorder(KinectRecordOptions.Skeletons, recordStream);
if (skeletonFrame != null)
{
this.Recorder.Record(skeletonFrame);
}
//StartRecord
// Skeleton[] skeletonData = this.Recorder.Record(skeletonFrame);
}
// some more stuff
}
我正在调用 Kinect 工具箱中可用的记录函数。
错误是:System.NullReferenceException 未处理......。 消息=对象引用未设置为对象的实例。 .....来源=骨架跟踪
更新:如果我已将初始化移动到与记录器调用相同的函数中。
根据您发布的代码,您永远不会初始化您的KinectRecorder
。
this.Recorder.Record(skeletonFrame); // I get an error after the RGB camera view freezes
。将生成一个空指针,因为Recorder
从未初始化过。 除非您在此处的代码示例中省略了该部分。 您可以在声明时执行此操作,也可以稍后再声明。
KienctRecorder Recorder = new KinectRecorder(options, stream);
options
需要针对您的适当KinectRecordOptions
进行设置。 stream
是您的输出Stream
。