내 프로젝트에서 Kinect.Toolbox를 사용하고 있습니다. 재생이 끝난 후 메시지를 표시해야합니다. 이 순간을 얻을 수있는 방법이 있습니까?Kinect Toolbox에서 재생 끝을 감지하는 방법
actualy 내 코드는 다음
Stream recordStream = File.OpenRead(@"D:\recorded.FisioKinect");
this.Replay = new KinectReplay(recordStream);
this.Replay.ColorImageFrameReady += replay_ColorImageFrameReady;
this.Replay.Start();
수행하고 replay_ColorImageFrameReady 여기에 재생 객체가 IsFinished라는 속성을 가지고
void replay_ColorImageFrameReady(object sender, ReplayColorImageFrameReadyEventArgs e)
{
if (this.Replay.IsFinished)
{
MessageBox.Show("End");
}
byte[] pixelData = new byte[e.ColorImageFrame.PixelDataLength];
e.ColorImageFrame.CopyPixelDataTo(pixelData);
// Other awesome stuff :)
}
주이지만, 재생 경우 replay_ColorImageFrameReady가 발생하지 않습니다 IsFinished이므로 메시지가 표시되지 않습니다.
Kinect.Toolbox의 코드는 TPL을 사용하고 내가, 내가 OnReplayEnd 같은 이벤트를 발생하는 Kinect.Toolbox의 코드를 변경하려면 TPL에 대해 많이 몰라요
당신은 이런 구조를 구축 할 수 있습니다
나는 TPL에 대해서 많이 모른다. Replay.Isfinished가 true로 설정되면 이벤트를 시작하는 데 어떻게 멈 춥니 까? – SimpleSimon
혹시 이것을 생각해 보셨습니까? –
예 @FrankSposaro, 저는 약 1 년이 지난 후에 작성한 코드를 건드리지는 않았지만 그 아이디어는 아래의 답변과 동일합니다. KinectReplay.cs (Kinect Toolbox 패키지에서)를 편집하고 EventHandler를 하나 만들고 코드를 읽고 해당 위치에서 재생이 끝나는 순간을 찾아 이벤트를 트리거하십시오. 따라서 수업 시간에 해당 이벤트를 처리 할 수 있습니다. – Ewerton