piapia123
zh

设备综合测试

音视频

所有处理都在浏览器本地完成,数据不上传服务器

键盘

点这里,然后按任意键

所有读取都在本机完成,不联网。⚠️ 每个页签的监听与媒体流在切走时都会清理:摄像头与麦克风只在对应页签激活时打开,切走就关。

一个页面把设备上能测的东西都测一遍:键盘、鼠标、触摸、摄像头、麦克风、传感器、电池、游戏手柄八项,用页签切换。 ⚠️ 两个刻意的设计。第一,每个页签只在自己被激活时才申请权限、才绑定事件,切走就清理 —— 一进页面就把摄像头和麦克风全打开既吓人,又会在浏览器里留下「这个站一直在用摄像头」的记录,所以切到摄像头页签并点「打开」才会申请,离开就 `track.stop()`。第二,这些接口在不同浏览器与设备上缺失得很厉害,缺失时的表现往往是「没有事件、值是空的」;页面会明说「这个浏览器不提供」,而不是显示一个 0 —— 一个 0 会让人去修根本不坏的设备,这比什么都不显示更糟。 全部读取都在本机完成,不联网、不上传。

功能

  • 键盘:按下即显示 code / key / keyCode / 修饰键状态,并给出主键区「还有哪些键没按过」的进度
  • 鼠标:左中右与两个侧键、滚轮方向与折算步数、双击检测、指针位置与移动速度、pointerType
  • 触摸:最多触点数与当前各触点坐标,并判断是否真的支持压感(恒为 0.5 表示不支持)
  • 摄像头:列出设备,打开后只报实际协商到的分辨率与帧率;预览默认关闭、可一键隐藏
  • 麦克风:实时音量条(AnalyserNode 的 RMS),可一键关闭
  • 传感器:deviceorientation 与 devicemotion 的读数,没有数据时说明不提供而不是显示 0
  • 电池:getBattery 的电量与充电状态;API 不存在时有明确提示(它已被多数浏览器移除)
  • 游戏手柄:getGamepads 的按钮与摇杆状态,接上手柄按任意键即可识别
  • 每个页签都在切走时清理监听与媒体流;摄像头与麦克风只在对应页签激活时打开

使用方法

  1. 点上面的页签逐项测试;键盘与鼠标页签按下就出结果,不需要点「运行」
  2. 摄像头与麦克风页签要点「打开」才会申请权限 —— 只有你同意之后才会打开
  3. 传感器与手柄在桌面电脑上常常没有数据,这时页面会说明原因,那是正常的
  4. 测完切走或关掉页面,摄像头与麦克风会自动停止

常见问题

为什么进页面没有自动打开摄像头?
因为一进页面就打开摄像头与麦克风既吓人,也会在浏览器里留下「这个站一直在用摄像头」的记录。所以只有在切到对应页签、并且点了「打开」之后才会申请权限;一旦离开该页签,媒体流立刻 `track.stop()`。这也是这一类工具最不该犯的错。
为什么电池一栏显示「不提供」?
Battery Status API 出于隐私考虑(它常被用来做设备指纹)已经被多数浏览器移除:Firefox 从未实现,Chrome 在多数平台也已移除。所以「不提供」是浏览器行为,不是你的设备坏了。
为什么触摸的压感显示不支持?
触摸事件规范规定:不支持压感的设备必须恒报 `pressure: 0.5`,它的含义是「不知道」,而不是「按了一半」。所以恒为 0.5 时本页判为不支持,而不是画一个半满的条骗你。
为什么传感器没有数据?
方向与运动数据来自设备本身的传感器,绝大多数桌面电脑没有。页面等一会儿没有数据就会明说「这个浏览器不提供」,而不是显示一排 0。

相关工具