使用Web MIDI API,我可以发送一些消息:
我还可以安排一些消息在未来的时间发出,使其更加适时。
// Note on
output.send([0x90, 0x20, 0x50]);
我还可以安排一些消息在未来的时间发出,使其更加适时。
// Note off, 1 second later
output.send([0x80, 0x20, 0x40], performance.now() + 1000);
现在,假设我已经安排了许多消息在未来的几秒钟内发送,现在我想取消发送这些消息。根据规范,我应该能够在输出上调用clear
:
output.clear();
然而,在Chrome浏览器上这是未定义的(至少在v79版本中是这样)。
Uncaught TypeError: output.clear不是一个函数
我猜这部分功能还没有实现。是这样吗?如果是,是否有一些替代方法可以使用?
output
变量的?如果您能发布相关代码将会很有帮助。您还应该指定您正在测试的 Chrome 版本。 - Aseshoutput
只是一个MIDIOutput
。这可以通过类似于const midi = await navigator.requestMIDIAccess()
,然后使用midi.outputs.values().next().value
这样的方式获得。我没有进行任何特殊处理,也没有使用任何库。这就是Web MIDI API,直截了当。Chrome v79。 - Brad