0

骨格追跡コードを実行して、追加した次のコード行をテストしようとすると、エラーが発生してクラッシュします。

    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ツールボックスで利用可能なRecord関数を呼び出しています。

エラーは次のとおりです。System.NullReferenceExceptionが処理されませんでした.......メッセージ=オブジェクト参照がオブジェクトのインスタンスに設定されていません。..... Source = SkeletalTracking ..

更新:初期化をレコーダーの呼び出しと同じ関数に移動した場合。

4

1 に答える 1

1

投稿したコードに基づいて、を初期化することはありませんKinectRecorder

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

...は初期化されなかったため、nullポインタを生成しますRecorder。ここでのコード例からその部分を除外していない限り。あなたはそれを宣言するとき、またはあなたが望むなら後でそれをすることができます。

KienctRecorder Recorder = new KinectRecorder(options, stream);

options適切に設定する必要がありますKinectRecordOptionsstream出力Streamです。

于 2012-12-03T21:15:46.667 に答える