2016-04-11 17 views
0

Kinect V1 sınıflarını kullanan bir kodu dönüştürürken birçok hatayı ayıklarken, Kinect V2 sınıflarına giderim. this belirtildiği gibi, bazı değişiklikler var.
Şimdiye kadar Gövde içine İskelet gibi bazı sınıfları hata ayıklamak için başarmış ama Skeleon ve AllFramesReadyEventsArgs bazı eksik parçalardır orada: Hala Çerçeve okuyucunuzKinect v1 ve Kinect v2 sınıfları alternatifleri

private void KinectAllFramesReady(object sender, AllFramesReadyEventArgs e) 
     { 
      // Have we already been "shut down" by the user of this viewer, 
      // or has the SkeletonStream been disabled since this event was posted? 
      if ((this.Kinect == null) || !((KinectSensor)sender).SkeletonStream.IsEnabled)// Error with Skeleton Stream 
      { 
       return; 
      } 

      bool haveSkeletonData = false; 

      using (BodyFrame skeletonFrame = e.OpenSkeletonFrame()) 
      { 
       if (skeletonFrame != null) 
       { 
        if (this.skeletonCanvases == null) 
        { 
         this.CreateListOfSkeletonCanvases(); 
        } 

        if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength))// Error with SkeletonArrayLength 
        { 
         this.skeletonData = new Body[ skeletonFrame.SkeletonArrayLength]; 
        } 

        skeletonFrame.CopySkeletonDataTo(this.skeletonData);// Error with Skeleton Frrame 

        haveSkeletonData = true; 
       } 
      } 

, Kinect V2 alternatif bunun için ne ? Ben Kinect V1 için aşağıdaki kodu vardır:

protected override void OnKinectChanged(KinectSensor oldKinectSensor, KinectSensor newKinectSensor) 
     { 
      if (oldKinectSensor != null) 
      { 
       oldKinectSensor.AllFramesReady -= this.KinectAllFramesReady; 
       this.HideAllSkeletons(); 
      } 

      if (newKinectSensor != null && newKinectSensor.Status == KinectStatus.Connected) 
      { 
       newKinectSensor.AllFramesReady += this.KinectAllFramesReady; 
      } 
     } 

cevap

0

Eğer KinectSensor nesne üzerinde IsAvailableChanged olayını kullanabilirsiniz, OnKinectChanged olayı değiştirin.

+0

kullanmak zorunda SDK2 ile kinectV2 geliştirmek için İskelet Sınıf arasındadır? Bunu değiştirdim, ancak hala "AllFrameReady", artı KinectStatus hatasıyla ilgili bazı hatalar var –

0

temel fark Kinect V2 Kinect V1 ve Vücut Class'ta Ama bana uygun bir kodla lütfen verebilir misiniz MultiSourceFrameReader Class