手柄测试

在浏览器中测试按键、摇杆、死区、轮询率和震动功能

连接手柄并按下任意按键以开始检测 支持 USB 和蓝牙手柄
连接手柄
X 0.000 Y 0.000
X 0.000 Y 0.000

按键

死区分析

连接手柄以分析死区
左摇杆
x: 0.000 y: 0.000 圆形度 平均误差:
右摇杆
x: 0.000 y: 0.000 圆形度 平均误差:
检测中... 左摇杆
检测中... 右摇杆

漂移检测:幅度 < 0.02 = 无漂移;0.02-0.03 = 检测到漂移(保持摇杆居中 0.5 秒)

震动测试

双马达震动

0.8
0.5

扳机震动

0.7
0.7

扳机震动需要 Xbox 手柄配合基于 Chromium 的浏览器使用

这个工具到底测什么?

本页通过浏览器内置的 Gamepad API,实时读取你的手柄按键原始数值、摇杆位置、扳机行程和震动状态。所有处理都在本地浏览器标签页里完成,不会向任何服务器发送数据。如果你感觉手柄某个地方有点不对劲,这里是排查问题的好起点——能帮你判断是硬件问题、固件问题,还是游戏死区设置没调好。

主测试 实时显示每个按键、摇杆和扳机的输入状态。适合确认某个按键能否正常注册、摇杆松手后是否回正、以及在游戏软件施加曲线之前查看扳机的原始 0–1 数值。
诊断 测量轮询率(手柄上报数据的频率)、摇杆中心偏移量,以及逐帧输入处理延迟。对比不同手柄性能或排查偶发误触时很有参考价值。
触摸板 面向 DualSense 和 DualShock 4 用户——在触摸板上滑动手指时,实时显示原始坐标轨迹。需要先在 Chrome 中启用一个实验性标志位。
健康检测向导 涵盖按键、摇杆、扳机、十字键、漂移和震动的六步引导式检测。最终输出一份评分报告,可复制为纯文本或导出为图片。

连接你的手柄

通过 USB 连接或进行蓝牙配对,然后按下手柄上的任意按键。浏览器需要收到至少一次输入事件才会激活手柄,这是防止被动指纹识别的安全机制。状态栏变绿后,你会看到手柄名称和实时更新指示灯。如果同时插了多个手柄,状态栏里的下拉菜单可以用来切换。

支持的浏览器与手柄

所有基于 Chromium 的浏览器(Chrome、Edge、Opera)和 Firefox 52+ 都支持 Gamepad API,Safari 从 16.4 版起提供基础支持。Xbox 有线/无线接收器、PlayStation DualSense 和 DualShock 4、Switch Pro Controller,以及大多数通用 USB HID 手柄都能直接使用,无需额外配置。震动功能需要 Chrome 或 Edge——Firefox 不提供 vibrationActuator 接口。任天堂 Joy-Con 在部分操作系统上按键映射可能不完整。

诊断标签页——手柄背后的数据

轮询率

显示浏览器每秒读取手柄状态的次数。大多数有线手柄以 125 Hz(8 ms 间隔)上报,部分电竞手柄可达 250 Hz 乃至更高。这里的数值受 requestAnimationFrame 限制,不会超过显示器刷新率。如果 144 Hz 显示器上只显示 60 Hz,换个 USB 口试试——2.0 和 3.0 口之间有时会影响 HID 轮询频率。

死区检测

把左摇杆转满一圈,观察散点图的分布情况。每个点是一次静止采样;点群偏离中心越远,说明摇杆的物理偏移或磨损越明显。根据这个实测数据来设置游戏内的死区值,比盲猜要靠谱得多。松手后摇杆持续偏离中心超过 3–5% 的,是漂移的早期信号。

输入处理延迟

测量从浏览器更新手柄状态(gamepad.timestamp)到页面在 requestAnimationFrame 中处理该事件之间的时间差。正常情况下在 1–5 ms 之间。超过 16 ms 的尖刺通常是浏览器标签页负载太重,不是硬件出了问题。注意:这里测的是浏览器层的开销,从物理按键到游戏引擎响应的完整延迟要更高,只有专用硬件测试设备才能准确量出来。

健康检测向导——掌握你手柄的真实状态

点开向导标签页,按下开始,系统会引导你完成六步检测:按遍所有按键、把两根摇杆各转满一圈、将两个扳机完整按下再松开、按下十字键的四个方向、松开摇杆等待漂移测量、测试每个震动马达。不支持某项功能的硬件可以跳过——跳过的步骤会在报告里单独标注,不影响整体评级。

怎么看检测结果

每一步会得到通过、警告或失败三种结果之一。按键出现警告表示有些按键没测到;漂移失败说明摇杆完全松手后仍有明显的偏离中心噪声。整体评级:优秀(全部通过)、良好(有轻微警告)、需关注(存在失败项)。点「复制报告」可获取纯文本,粘到任何地方都行;点「导出图片」可生成一张方便分享的报告卡——申请保修或发帖求助时挺有用。

触摸板测试——实验性功能

触摸板标签页使用的是 Gamepad Multitouch API,这是 Chromium 的一项开发试验性功能,能读取手柄触摸板的原始坐标数据。按下方步骤启用 Chrome 标志位,然后通过 USB 连接受支持的手柄,就能看到实时手指轨迹、坐标读数、速度追踪和基础手势识别。以下各节分别说明支持的硬件、Windows 蓝牙的问题,以及 API 的已知限制。

如何启用

在 Chrome 114 或更高版本中打开 chrome://flags/#enable-gamepad-multitouch,将对应条目设置为「已启用」,然后重启浏览器。启用后连接兼容手柄,触摸板标签页会自动解锁,不需要其他配置。

支持的手柄

Chrome 的多点触控驱动目前支持:Sony DualSense(PS5)、Sony DualShock 4(PS4)、Valve Steam Deck 和 Valve Steam Controller。两款 Sony 手柄都具备双指多点触控硬件——DualShock 4 的触摸面物理分辨率为 1920×942 px——但受当前 Dev Trial 实现限制,每帧最多只上报一个触摸点。

Windows + 蓝牙:触摸板可能无法使用

在 Windows 上通过蓝牙连接 DualShock 4 或 DualSense 时,系统通常会把连接交给通用 HID 层或 XInput 接口处理,而不是把原始 HID 报文直接转给 Chrome。Chrome 的触摸板驱动需要 ID 为 0x11 的原始蓝牙 HID 报文才能读取触摸数据——如果 Windows 先接管了连接,gamepad.touchEvents 会返回空数组或 null,触摸板标签页会显示「API 不可用」,即便按键和摇杆功能完全正常。三种解决方案:改用 USB 线连接(最稳定);安装 DS4Windows,它会通过蓝牙以原始 HID 方式暴露给 Chrome;在 Linux 或 macOS 上蓝牙连接通常无需额外操作。

已知的 API 限制

有几个已知的边界情况:Dev Trial 目前每帧最多只上报一个触摸点,即便硬件支持双指同时触控——第二根手指会在下一帧出现。触摸抬起事件(松开手指)有时无法可靠上报,本工具用 750 毫秒的超时机制来兜底。把触摸板当按键按下时坐标会短暂跳变,本工具会在这段时间冻结位置,防止出现幻影移动。只有基于 Chromium 的浏览器支持 gamepad.touchEvents 属性——Firefox 和 Safari 不实现这个 API。