2012-12-03 37 views
0

當我嘗試運行我的骨架跟蹤代碼來測試我添加的以下代碼行時,它會崩潰並顯示錯誤。正在初始化Kinect Recorder錯誤

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 =未將對象引用設置爲對象的實例。 .....來源= SkeletalTracking

更新: 如果我已經將初始化移動到與記錄器調用相同的功能。

回答

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

+0

如果我想要記錄的流是骨架數據,並且我聲明瞭一個Stream recordStream變量,那麼輸出流將是什麼.................... ..... KinectRecorder記錄器=新的KinectRecorder(KinectRecordOptions.Skeletons,???); .............我更新了更多的信息我的問題上面。 – user1773489

+0

'Stream'是文件輸出流 - 也就是說,您想要在哪裏保存數據。它被設置爲一個普通的文件'Stream'。 –

+0

我已經更新了上面的內容。它是否正確? – user1773489