Tworzę aplikację za pomocą SDK, w której muszę mieć tylko jednego użytkownika i zablokować go, więc jeśli pojawi się ktoś inny, nawet jeśli ta osoba jest bliżej do Kinect, aplikacja zachowuje śledzenie pierwszego szkieletu, który śledził.Jak zablokować w pojedynczym szkielecie?
Od bibliotece MSDN znalazłem mogę użyć Skeletom Stream Klasa:
nieruchomości: AppChoosesSkeletons = Pobiera lub ustawia Boolean wartość, która określa, czy aplikacja wybiera, które szkielety śledzić.
Metoda: SkeletonStream.ChooseSkeletons (Int32) = Wybiera szkielet do śledzenia. Składnia: pustka publiczna ChooseSkeletons (int trackingId1)
Nie jestem zbyt dobry w programowaniu i używam C#, myślałem o napisaniu czegoś takiego jak kod, ale mówi, że używam nieprawidłowego wyrażenia .
SkeletonFrame SFrame = e.OpenSkeletonFrame();
if (SFrame == null) return;
Skeleton[] Skeletons = new Skeleton[SFrame.SkeletonArrayLength];
SFrame.CopySkeletonDataTo(Skeletons);
int firstSkeleton = Skeletons[0].TrackingId;
sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);
if (firstSkeleton == null)
return;
if (SkeletonTrackingState.Tracked == firstSkeleton.TrackingState)
{
//body...
Problem jest z sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton
, mówi int firstSkeleton cannot be used
.
Czy ktoś mógłby mi pomóc? Dzięki!
Proszę, powiedz mi, gdzie i kiedy pojawi się ten błąd. – Likurg
@Likurg Napisałem to w inny sposób, nie wiem, czy to zadziała, czy jest to najlepszy sposób: 'Skeleton closestSkeleton = (od s w Skeletons gdzie s.TrackingState == SkeletonTrackingState.Tracked && s.Joints [JointType.Head ] .TrackingState == JointTrackingState.Tracked select s) .OrderBy (s => s.TrackingId) .FirstOrDefault(); 'Z kodu, który napisałem wcześniej, problem był z' sensor.SkeletonStream.ChooseSkeletons (int firstSkeleton); ' napisano, że int firstSkeleton nie może być użyty. Myślę, że moja logika nie jest właściwa, czegoś brakuje, ale nie jestem pewna, jak to zrobić. Dzięki za odpowiedź ur – Paola
Czy próbowałeś używać 'TrackingID' szkieletów? Może tylko zwrócić uwagę na pierwszy? –