用于检测系统音量(声音)和音频插孔的Javascript

Cod*_*ien 7 javascript audio html5 volume getusermedia

HTML5具有板载音量检测功能.

<video controls width="320" height="176" onvolumechange="alert('The volume has been changed')">
Run Code Online (Sandbox Code Playgroud)

这仅适用于玩家.

是否可以从系统中检测音量?说一个电话.我可以通过移动浏览器获取手机的音量读数吗?

或者我可以使用JS来检测音频插孔是否已插入?

可以使用GetUserMedia检测音频输出的音量级别吗?

Amu*_*kog 2

简短的回答是否定的!这就是网络浏览器很长一段时间以来的制作方式,Microsoft/Google/Apple/Mozilla/Opera 已经这样做了,以避免通过 File.IO 等进行攻击。实际上,我们应该对此表示感谢 - 因为它将您的计算机(以及您所有的个人资料)与网络应用程序(可能托管在具有敌意意图的服务器上)隔离开来。

实际上,有一种方法可以做到这一点,但它只适用于 IE 用户 - 答案是 activeX 插件。现在,您可以让您的 javascript 创建这样一个插件并与其通信 - 但谁知道 IE 将来是否会支持 activeX。

因此,就其本身而言,仅使用 HTML5/Javascript 是无法实现这一目标的——只需将浏览器视为运行 Web 应用程序的操作系统即可。因此,谷歌、微软等以及其他决定 HTML5 标准的人决定了开发人员获得多少访问权限。相机硬件、GPS 硬件等我们确实可以访问,但我们不能用这些硬件做任何我们想做的事——它并不总是开发人员的选择。