手柄测试
未检测到手柄
按下手柄上的任意按钮将其"唤醒" — 为保护你的隐私,浏览器在你操作之前会对网页隐藏手柄。
请先确认手柄已连接或已配对。蓝牙手柄可能需要先与设备配对,浏览器才能识别到它。
总结
- 手柄已连接
- 标准按钮布局
- 每个按钮至少按下过一次
- 已测量扳机行程
- 未检测到摇杆漂移
- 各方向摇杆行程范围完整
- 已确认震动
大多数手柄测试工具只是显示一个实时示意图,就称之为「测试」。这个工具测量的是示意图无法展示的内容:某个摇杆在完全静止时是否仍在报告移动、摇杆需要移动多少才会被浏览器检测到、它在每个方向上是否能到达最大偏转,以及模拟扳机的移动是否顺滑还是卡住。有一项内容本工具刻意拒绝测量:手柄的 USB 或蓝牙轮询率(polling rate)。Gamepad API 只允许浏览器以大致相当于屏幕刷新的频率来检查更新,因此任何声称是「真实轮询率」的数字实际上只是在测量你的显示器、只是换了个说法而已——本页选择诚实地说明这一点,而不是显示一个虚假的数字。
工作原理
- 连接手柄. 像玩游戏一样,通过 USB 连接手柄,或通过蓝牙配对。
- 按任意键将其「唤醒」. 出于隐私保护,浏览器会隐藏已连接的手柄,直到你在手柄上按下某个按键为止——本页面和其他任何网站都无法跳过这一步。
- 检查按键覆盖情况. 至少按一次每个按键、扳机和摇杆按压。每测试一个,示意图上就会相应点亮,进度提示会显示你已覆盖了总数中的多少个。
- 测量摇杆漂移. 在不触碰任何摇杆的情况下运行漂移检测——它会观察手柄在真正静止状态下报告的移动量。
- 检查行程范围和死区. 沿摇杆边缘缓慢转动一圈,检查它是否在每个方向上都能到达最大偏转;再从中心缓慢推动,估算需要移动多少才会有反应被记录。
- 测试震动. 如果浏览器报告支持震动,播放一个简短的测试效果,并确认你是否真的感受到了——浏览器报告成功,并不等于电机真的转动了。
为什么本工具不显示轮询率
游戏鼠标的轮询率之所以可以测量,是因为鼠标自身的驱动程序会报告这一数值。手柄没有对应的机制:Gamepad API 是浏览器定期检查的对象,频率大致与屏幕刷新率相当,而不是手柄主动推送更新。本页面如果显示任何声称是手柄「真实报告频率」的数字,实际上测量的都只是显示器的刷新率,只是换了个说法。
「标准布局」与编号按键
大多数现代手柄——Xbox、PlayStation 以及大多数第三方 USB 手柄——都会被浏览器自动重新映射为「标准」布局,这是 Gamepad API 定义的一套通用编号规则,使得按键 0 在任何标准映射手柄上都可靠地对应同一个物理按键。发生这种情况时,本测试会显示一张带标签的示意图:面板按键、肩键、扳机、摇杆和方向键,各自大致位于其在真实硬件上的位置。
有些手柄——通常是较旧、通用或不常见的硬件——永远不会以这种方式被重新映射。与其猜测并冒着给某个物理按键贴错标签的风险,本测试会转而显示一个简单的编号按键和坐标轴条形网格。它没那么美观,但很诚实:贴错的标签比没有标签更糟。
摇杆漂移:「静止」到底意味着什么
摇杆漂移是指没有人触碰手柄时,它却报告了摇杆移动——这是电位器磨损或霍尔效应传感器故障的典型症状。本测试会要求你在几秒钟内不要触碰任何一个摇杆,并观察这段时间内任一摇杆报告的最大移动量。一个完全健康的摇杆在整个过程中应报告一个极其接近零的数值。
- 正常——静止状态下未检测到有意义的移动。
- 轻微漂移——存在少量移动,值得留意,但很少需要紧急处理。
- 明显漂移——摇杆在未被触碰的情况下报告了真实的移动,这类漂移会在游戏中表现为不受控制的视角或角色移动。
死区估算——本页面最谨慎的数字
死区是摇杆静止位置周围一个很小的范围,在此范围内移动会被有意忽略——如果没有死区,漂移和传感器噪声将持续被记录为微小的、不需要的输入。本测试会要求你缓慢地将摇杆从静止位置推出,并报告它检测到的最小有效移动量。
这是本页面刻意设计得最谨慎的一项测量:如果在检测过程中摇杆移动得太快,捕捉到的第一个非零读数很可能已经远远超过了死区真正结束的位置,因此测试会直接拒绝报告数字,而不是显示一个看似可信的猜测值。在这里看到「数据不足,无法信任该数值」是正常且预期的结果,并不代表工具出现故障。
震动:为什么本测试要问你,而不只是问浏览器
当浏览器报告某个震动效果播放完成时,这只意味着浏览器自身的请求已经完成——并不能证明手柄内部的电机真的转动了。手柄震动的支持情况在不同浏览器之间的差异,也远比大多数网页功能更大:有些完全支持,有些只是部分支持,还有些完全不支持,这与你的手柄本身能否震动无关。
不会上传任何内容
本页面上的每一项测量——按键按压、摇杆移动、扳机行程、漂移、死区、震动——都由浏览器直接从你的手柄读取,并完全在本标签页内处理。关于你的手柄或使用方式的任何信息都不会被发送到任何地方。
本页面也从不读取你手柄的序列号或任何其他可唯一识别硬件的信息,读取的仅仅是浏览器本就已经向任何请求方公开的同一个厂商/型号字符串。
常见问题
为什么我的手柄没有立即显示出来?
浏览器会有意隐藏已连接的手柄,直到你在手柄本身上按下某个按键为止——这是为了防止网站在你不知情的情况下对你的硬件进行指纹识别的隐私保护措施。按下任意一个按键,手柄应该会立即出现。
为什么按键显示的是数字而不是名称?
你的浏览器没有将此手柄重新映射为通用的「标准」布局,因此本页面无法可靠地知道哪个物理按键对应哪个编号。为了避免猜测并贴错标签,本页面选择以编号按键的形式显示。
这个工具能测试我手柄的轮询率吗?
不能,这是刻意为之的设计。Gamepad API 只允许浏览器以大致相当于屏幕刷新率的频率检查更新,而不是手柄真实的报告频率——任何声称测出了别的数值,实际上测量的都只是你的显示器。
我的左摇杆在游戏中会漂移,但这个测试说是正常的,为什么?
有些漂移只有在手柄游玩过程中逐渐预热后才会出现,或者只在这次简短测试可能未能捕捉到的特定摇杆角度下才会出现。可以在使用几分钟后再次尝试漂移检测。
这个工具支持蓝牙手柄吗?
支持。蓝牙手柄可能需要先通过操作系统的蓝牙设置与你的设备配对,浏览器才能识别到它。
我的手柄明明支持震动,为什么测试不出来?
手柄震动的支持情况在不同浏览器之间差异很大,与手柄本身支持什么无关。如果浏览器报告不支持,或者报告成功但你却毫无感觉,这属于本页面无法绕过的浏览器限制。
这个工具会上传或存储任何数据吗?
不会。所有测量都在你的浏览器标签页内本地运行,离开页面后不会被发送或保存到任何地方。
这个工具支持手机吗?
支持,只要你的手机或平板浏览器支持 Gamepad API,并且已经配对了手柄——目前许多主流移动浏览器都支持这一功能。
关于你的手柄或其使用方式的任何信息都不会被上传、记录或发送到任何地方。按键按压、摇杆移动、漂移、死区、扳机行程、震动等所有测量数据均从手柄读取,并完全在此浏览器标签页内处理。