2012-12-03 2 views
0

내가 추가 한 다음 코드 줄을 테스트하기 위해 골격 추적 코드를 실행하려고하면 오류가 발생하여 충돌합니다.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 처리되지 않았습니다 ....... 메시지 = 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ..... 출처 = SkeletalTracking

업데이트 : 초기화를 레코더 호출과 동일한 기능으로 옮긴 경우.

답변

1

게시 한 코드에 따라 을 초기화하지 않습니다.

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입니다.

+0

스트림을 스켈레톤 데이터로 기록하고 스트림 streamStream 변수를 선언하면 출력 스트림이 어떻게됩니까? ..... KinectRecorder Recorder = 새로운 KinectRecorder (KinectRecordOptions.Skeletons, ???); ............. 위의 질문에 대한 추가 정보가 업데이트되었습니다. – user1773489

+0

'Stream'은 파일 출력 스트림입니다 - 즉, 어디서 데이터를 저장하고 싶습니까? 그것은 정상적인 파일'Stream'처럼 설정됩니다. –

+0

위의 내용을 업데이트했습니다. 이 올바른지? – user1773489