初始化 Kinect 录制器错误



当我尝试运行我的骨骼跟踪代码来测试我添加的以下代码行时,它崩溃并显示错误。

    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

相关内容

  • 没有找到相关文章

最新更新