为什么 navigator.requestMIDIAccess() 在 Firefox 中可以在网站上工作,但在本地文件上却不能?

Why is navigator.requestMIDIAccess() working on websites but NOT on local files in Firefox?

提问人:cerebral_malfunction 提问时间:11/17/2023 更新时间:11/18/2023 访问量:17

问:

尝试创建一个本地使用的应用程序,该应用程序从我的MIDI键盘接收消息。每当我打电话时,我都会得到.但是我可以访问其他实现此 API 的网站并且不会出现该错误,出现提示以选择我的键盘作为输入,并且应用程序可以很好地接收 MIDI 事件。如果有帮助,我在 Firefox 和 Ubuntu 上,通过 .如果我在网站上,开发人员控制台甚至会自动完成,但在查看本地文件时不会。我以为在本地使用WebMIDI比在线使用WebMIDI更简单?这是怎么回事?!navigator.requestMIDIAccess()TypeError: navigator.requestMIDIAccess is not a functionfile:///navigator.requestMIDIAccess()

我尝试使用

    navigator.permissions.query({ name: "midi", sysex: true }).then((result) => {
        console.log(result.state);
    });

控制台记录“提示”,而不是“拒绝”。我也检查过,它是“真实的”。我不知道还有什么要检查的。我已经通读了与此错误相关的 duckduckgo 结果的前 2 或 3 页,但遗憾的是,它们似乎都可以追溯到 Firefox 根本不支持此 API 的日子,因此没有涵盖我遇到的问题。同样,我知道我的浏览器支持 MIDI,因为当我浏览到使用此 API 的其他应用程序时,它们工作正常,并且控制台会识别我何时查看任何非本地站点,但在查看我的本地应用程序时不会使用地址。我真的很想知道如何让WebMIDI工作。window.isSecureContextnavigator.requestMIDIAccess()file:///

JavaScript Ubuntu Firefox Web-MIDI

评论


答:

0赞 evilpie 11/18/2023 #1

Firefox 不支持 file:// URL 上的 API(即使它是一个安全的上下文)。这可能会随着 Bug 1850446而改变。navigator.requestMIDIAccess

评论

0赞 cerebral_malfunction 11/18/2023
哇,那是......可怕。我能做些什么来请求更改吗?或者至少有记录?另外,推荐的解决方法是什么(如果有)?