1

正如标题所说,我没有为同一类型的控制器获得 2 个不同的游戏手柄(是的,我可以在控制面板中看到它们joy.cpl

即使用 Windows 我可以在joy.cpl以下列表中看到:

Controller (XBOX 360 for Windows)
Saitek Pro Flight X-56 Rhino Stick
Saitek Pro Flight X-56 Rhino Throttle
6B Controller
6B Controller

在 Chrome (v84) 中,我只得到这个:

Array.from(navigator.getGamepads()).map(g => g.id);
// [
//  "Xbox 360 Controller (XInput STANDARD GAMEPAD)"
//  "6B controller (Vendor: 0ca3 Product: 0024)"
//  "Saitek Pro Flight X-56 Rhino Throttle (Vendor: 0738 Product: a221)"
//  "Saitek Pro Flight X-56 Rhino Stick (Vendor: 0738 Product: 2221)"
// ]

如果有相同的类型,我试图调查如何区分它们,但结果是我什至没有得到它们......

有什么办法可以拿到第26B Controller吗?

编辑 在使用较新的 Chrome 版本进行测试后,我可以确认它现在正在工作......所以可能是旧版本中的一个问题,它已经修复了 :)

4

1 回答 1

0

我刚刚做了一个快速测试并将两个相同的游戏手柄插入我的机器,两个都被检测到:

0: Gamepad {id: "Xbox 360 Controller (STANDARD GAMEPAD Vendor: 045e Product: 028e)", index: 0, connected: true, timestamp: 222286.67000000132, mapping: "standard", …}
1: Gamepad {id: "Xbox 360 Controller (STANDARD GAMEPAD Vendor: 045e Product: 028e)", index: 1, connected: true, timestamp: 245434.25500000012, mapping: "standard", …}

您是否尝试在呼叫之前唤醒两个控制器(通过按下按钮)navigator.getGamepads()

于 2020-12-16T11:45:31.597 回答