Javascript MIDI.js错误代码:1,can';t请求MIDI访问

Javascript MIDI.js错误代码:1,can';t请求MIDI访问,javascript,midi,web-audio-api,Javascript,Midi,Web Audio Api,我正在尝试使用MIDI.js在浏览器中播放声音。 它在我的一台电脑上的chrome浏览器中工作,但在我的另一台电脑上(chromebook)或在我的两个朋友的电脑上的chrome浏览器中不工作 它打印到控制台 “哦!出问题了!错误代码:1”MIDI.js:349 这是指MIDI.js的这一部分 navigator.requestMIDIAccess(function (access) { plugin = access; output = plugin.getO

我正在尝试使用MIDI.js在浏览器中播放声音。

它在我的一台电脑上的chrome浏览器中工作,但在我的另一台电脑上(chromebook)或在我的两个朋友的电脑上的chrome浏览器中不工作

它打印到控制台

“哦!出问题了!错误代码:1”MIDI.js:349

这是指MIDI.js的这一部分

navigator.requestMIDIAccess(function (access) {
        plugin = access;
        output = plugin.getOutput(0);
        if (callback) callback();
    }, function (err) {
        console.log("uh-oh! Something went wrong!  Error code: " + err.code );
    });
我发现这篇文章似乎是指我遇到的问题,但我不太确定

它说为了我不明白的原因交换代码的某些部分

navigator.requestMIDIAccess( successCallback, failureCallback );
变成:

navigator.requestMIDIAccess().then( successCallback, failureCallback );
但是在替换了MIDI.js344上的那个部分之后,我得到了错误消息

未捕获的TypeError:无法调用未定义的方法“then”


如果您能帮助解决此问题,使其在所有浏览器中都能正常工作,或者至少在所有chrome浏览器中都能正常工作,我们将不胜感激。谢谢你

Chromebook还没有Web MIDI API支持(如果你没有启用它,在Mac或Windows上也不支持,如果你没有运行Canary,在Windows上也不支持)。

谢谢你,我是要解决这个问题,还是等一下?恐怕你只能等一下了。请注意,MIDI.js假设在输出#1上有一个通用的MIDI合成器-这并不总是正确的,在Chromebook上可能也不会正确(除非您插入了GM synth)。我们真的需要在Web Audio中实现基于soundfont的synth。我认为MIDI.js库有一些回退,可以支持没有MIDI的浏览器(通过使用WebAudio API或Audio标记)。您可以尝试在Chromebook上运行一些MIDI.js演示吗?库中包含一个demo-Basic.html示例。