浏览器 API 游戏手柄未在 Windows 中检测到

Posted

技术标签:

【中文标题】浏览器 API 游戏手柄未在 Windows 中检测到【英文标题】:browser api gamepad not detecting in windows 【发布时间】:2013-10-22 09:33:41 【问题描述】:

我遇到了一个奇怪的问题。我有一个古老的 microsoft sidewinder version 1 游戏手柄,因为我正在学习 javascript/html5,所以我想让我们在浏览器中尝试一下游戏手柄。

我在 linux(我的笔记本电脑,ubuntu 13.04)上尝试过:navigator.webkitGetGamepads()[0] 在我的 chrome 浏览器(版本 28.0.1500.71)的控制台中并立即检测到游戏手柄。

我在运行版本 30.0.1599.101 m 的 windows 7 64 位桌面上尝试了同样的事情 做了:navigator.webkitGetGamepads()[0] 在控制台中,但这里没有运气,它一直告诉我undefined。当我在 Windows 中转到“我的设备”时,游戏手柄就在那里。

(https://www.dropbox.com/s/yam4fj5zqiogyjh/gamepad.png)

我在运行 Windows 8、64 位的笔记本电脑上遇到了同样的问题。

我不知道出了什么问题,也不知道如何解决。 (我希望它可以修复) 请帮忙

【问题讨论】:

如果你只做navigator.webkitGetGamepads(),你会看到什么?因为它可能在不同的数组键下。 所有元素都是未定义的:(。会不会是游戏手柄在windows下不工作,因为它不支持XInput? 不只是你。我有 Windows 8.1 和通用 USB 游戏手柄,但 Gamepad API 没有运气。似乎其他人也有这个问题:code.google.com/p/chromium/issues/detail?id=144843 所以你能做的最好的就是给这个问题加星标并等待修复。 【参考方案1】:

您可能想先尝试最知名的游戏手柄测试脚本。

铬:http://www.html5rocks.com/en/tutorials/doodles/gamepad/gamepad-tester/tester.html

Firefox(28,使用 Aurora):http://luser.github.io/gamepadtest/

如果您的游戏手柄使用的是 DirectInput 而不是 XInput,您可能会在 Chrome 上遇到一些问题,但它可以在 Firefox 上正常工作。例如,我在 PS4 游戏手柄上遇到了同样的问题。

【讨论】:

【参考方案2】:

规范尚未完成,但这个存储库是一个很好的开始。试试看:

https://github.com/luser/gamepadtest

它试图解释未完成规范的实现以及 Chrome 的前缀实现的差异。

【讨论】:

以上是关于浏览器 API 游戏手柄未在 Windows 中检测到的主要内容,如果未能解决你的问题,请参考以下文章

电脑手柄,Windows7电脑游戏手柄怎么设置?

电脑手柄,Windows7电脑游戏手柄怎么设置?

电脑手柄,Windows7电脑游戏手柄怎么设置?

使用原始输入在 Windows 上的游戏手柄力反馈(振动)

如何检测使用 USB HID API 推送的游戏手柄触发器?

如何在 Windows 中禁用游戏手柄/操纵杆上的按钮/轴?