javascript - 检查是否已授予对 Web MIDI API 的访问权限?

标签 javascript google-chrome web-midi

如果通过

请求访问 MIDI
navigator.requestMIDIAccess({sysex: true})

用户必须在 Chrome 和 Opera 中的模式中确认访问。

有没有办法检查用户是否已经允许访问 MIDI 而无需触发模式?

我想要这样做的原因是出于可用性原因:如果用户第一次访问单页网站,他不应该看到安全模式,其中 90% 的人会出于习惯立即单击“阻止访问”。

用户应该首先阅读全部内容,然后通过按下按钮触发 requestMIDIAc​​cess 例程。他应该只需要这样做一次。

API 中是否有我缺少的方法,或者是否有解决方法,例如读取 chrome://settings/contentExceptions#midi-sysex 中的条目?

最佳答案

如果您开发 MIDI Web 解决方案,我认为您的用户不会出于习惯点击“阻止访问”。这不是一个“标准”用户,而是一个工程师音乐人。

访问 MIDI 并不是一个基本操作。使用 Sysex 访问 MIDI 是更复杂且重要的正确访问。我不希望该网站在没有接受的情况下使用 sysex 在我的 MIDI 设备中读写。

规范说:

Requesting MIDI access SHOULD prompt the user for access to MIDI devices, particularly if system exclusive access is requested. In some scenarios, this permission may have already been implicitly or explicitly granted, in which case this prompt may not appear

也许这是 Chrome 导航器中的一个参数,它会自动授权此提示问题。

看来您只能通过 Chrome 导航器上的设置位置来进行响应。基于域名你可以自动接受带有指定域站点的MIDI授权,我认为...

为什么不测试 MIDIAc​​cess 对象是否存在?如果 MIDIAc​​cess 对象存在,则您拥有已接受授权 MIDI sysex 的用户。

关于javascript - 检查是否已授予对 Web MIDI API 的访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590218/

相关文章:

google-chrome - 使所有网站都可以使用 chrome 扩展

javascript - Chrome打印模式下的实际页数和总页数

node.js - 是否可以从 Chrome 跟踪事件数据中获取 Web Vitals?

javascript - 是否可以在 Web Audio Api 中使用四 channel 混响? (发出立体声)

javascript - MIDI Javascript : how to generate a single MIDI note in javascript without libraries?

javascript - IE 脚本错误/JQuery 循环

php - 监控访问者在其他网站停留的跟踪代码

javascript - “JSON 输入意外结束”

windows - 网络 MIDI 编程

javascript - 世博会如何分发包裹? (.web.js、.js 配置)