我一直在尝试了解如何在 chrome 上使用 Web MIDI API。我正在尝试关注 MDN 文档上的信息,并且能够获取有关我在 macOS 上安装的虚拟 MIDI 钢琴键盘的信息。
使用以下代码,我可以验证我是否能够获取有关 MIDI 设备的信息
navigator.requestMIDIAccess()
.then(onMIDISuccess, onMIDIFailure);
function onMIDISuccess(midiAccess) {
console.log(midiAccess);
var inputs = midiAccess.inputs;
var outputs = midiAccess.outputs;
}
function onMIDIFailure() {
console.log('Could not access your MIDI devices.');
}
但是我没有得到提示,允许网站访问我的 MIDI 设备,正如我所期望的那样。
然后我尝试使用在 MDN 文档上找到的代码片段来获取onmidimessage
.
// Printing all messages to console
navigator.requestMIDIAccess().then(midiAccess => {
Array.from(midiAccess.inputs).forEach(input => {
input[1].onmidimessage = console.log;
})
});
https://developer.mozilla.org/en-US/docs/Web/API/MIDIMessageEvent
我没有收到任何错误,我可以console.log(input[1])
看到结果。但是当我按下虚拟 MIDI 钢琴键盘上的键时,没有任何活动,我没有看到任何记录到控制台。
所以我很困惑,找不到任何关于如何让它工作的信息。有人对如何从 MIDI 设备获取事件有任何想法吗?