如何在Kinect工具箱中检测重播的末端



我在项目中使用kinect.toolbox,我需要在重播结束后显示一条消息。有没有办法得到这一刻?

实际上我的代码执行以下

Stream recordStream = File.OpenRead(@"D:recorded.FisioKinect");
this.Replay = new KinectReplay(recordStream);
this.Replay.ColorImageFrameReady += replay_ColorImageFrameReady;
this.Replay.Start();

和replay_colorimageframeready在这里

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 :)
}

请注意,重播对象具有称为Isfined的属性,但是如果重录iSfined,Replay_colorimageFramerEady将不会提高,因此,将永远不会显示该消息。

kinect.toolbox的代码使用tpl,我对TPL不了解,我想更改kinect.toolbox的代码以触发诸如onreplayend

之类的事件

您可以构建这样的结构:

在您的kinectreplay.cs

添加

public event EventHandler Closing;
protected virtual void OnClosing()
{
    EventHandler Closing = this.Closing;
    if (Closing != null)
        Closing(this, EventArgs.Empty);
}  

并在您要在哪里触发它。

replay.Closing += new EventHandler(replayMediaEnded);

相关内容

  • 没有找到相关文章

最新更新