初始化Kinect Recorder错误

时间:2012-12-03 20:59:25

标签: kinect kinect-sdk kinect.toolbox

当我尝试运行我的骨架跟踪代码以测试我添加的以下代码行时,它会因错误而崩溃。

    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未处理....... Message =对象引用未设置为对象的实例。  ..... Source = SkeletalTracking

更新: 如果我已将初始化移动到与录像机调用相同的功能中。

1 个答案:

答案 0 :(得分:1)

根据您发布的代码,您永远不会初始化KinectRecorder

this.Recorder.Record(skeletonFrame); // I get an error after the RGB camera view freezes

...会生成一个空指针,因为Recorder从未初始化。除非你在这里的代码示例中遗漏了那部分内容。您可以在声明时进行,如果愿意,也可以在以后进行。

KienctRecorder Recorder = new KinectRecorder(options, stream);
需要为适当的options设置

KinectRecordOptionsstream是您的输出Stream