1

我正在开发一个简单的视频播放器(在 WPF 和 c# 中,因为它必须用于 Windows),它必须放置在公共场所(因此有大量未经培训的随机用户)。控件将是非常基本的,滑动手势在视频之间滚动,一旦其中一个在屏幕上居中,点击播放和暂停它。

我用所有花哨的东西完成了播放器,并设法将手势附加到它上面,但是,嘿,绝对不是我需要的。手势有很多失误(否定错误),特别是轻击(但即使少得多,我也会说滑动很多)。

现在,我需要的根本不是高精度(正如我所说,只是左右滑动和点击,所以没有与任何东西的精确交互),但我需要让手势尽可能可靠,所以让我们说如果一次在一段时间内我会错过它没问题,但它不必像现在这样让用户感到沮丧。

我尝试使用手势配置(长度和速度),但我并没有看到太大的区别,默认值看起来几乎是最好的。我还能做些什么吗?如果这有帮助,是否有任何关于如何开发新手势的提示,而不是像现在看起来那样基于指尖,而是基于完整的手部运动?对它很陌生,我不确定这是否可行(我想是的),如果可行,我将如何开始和继续。

另外,您认为有可能达到我正在寻找的可靠性水平吗?

4

1 回答 1

1

滑动对我来说似乎相当可靠。将您在应用程序中看到的内容与您在打开“手势绘图”的诊断可视化工具中看到的内容进行比较(o按键)。如果手势在可视化器中效果更好,那么您可能会跳过帧,从而丢失一些手势对象。如果您依靠 STATE_START 手势状态来检测滑动手势的开始,这将是最明显的点击手势。

我假装在打开可视化器的情况下使用您的应用程序,并且滑动对我来说效果很好;我很少见到小姐。唯一可能有问题的是当我将手移回以再次向同一方向滑动时错误的返回滑动。不过,在滑动之间设置延迟可能会有所帮助。

尽管如此,如果您滑动的主要问题是未命中,那么降低最小距离和/或速度应该会有所改善。如果您没有看到太大的差异,请验证这些值是否真的发生了变化;设置配置值是异步的,因此您必须等待一帧才能读回它们。当这些设置太低时,我希望问题会变成误报。

如果滑动对您来说仍然不够好,您可以尝试用伸出的手指(或两个手指等)简单地跟踪手的 x 位置,并在该位置超过左侧或右侧的某个边界时滚动。屏幕上清晰的可供性将帮助这里的用户。

敲击更难以可靠,尤其是当您使用不止一种手势时。如果您更改设置以使点击识别更加宽容,您很容易得到很多误报。不过,应该有办法对其进行调整以使其正常工作。例如,在滑动发生时忽略点击,或忽略在以 y 轴为中心的预定义框之外发生的点击等。

点击的替代方法包括使用 Pointable 类 TouchDistance 属性。许多开发人员使用定时悬停来激活按钮。

其他想法请看 Leap Motion 文档中的这篇文章:https ://developer.leapmotion.com/documentation/GetStarted/Leap_Menu_Design_Guidelines.html

它讨论了菜单,但一般原则也适用于您的情况。

于 2013-12-31T20:00:29.093 回答