清除 MIDI 输出缓冲区

Bra*_*rad 5 javascript midi google-chrome chromium web-midi

使用 Web MIDI API,我可以发送一些消息:

// Note on
output.send([0x90, 0x20, 0x50]);
Run Code Online (Sandbox Code Playgroud)

我还可以安排一些消息在未来适时发送:

// Note off, 1 second later
output.send([0x80, 0x20, 0x40], performance.now() + 1000);
Run Code Online (Sandbox Code Playgroud)

现在,假设我已经安排了许多消息在未来几秒钟内发送,现在我想取消这些消息的发送。 根据规范,我应该能够调用clear输出:

output.clear();
Run Code Online (Sandbox Code Playgroud)

但是,这在 Chrome 上是未定义的(至少从 v79 开始)。

未捕获的类型错误:output.clear 不是函数

我认为这部分还没有实现。是这样吗?如果是这样,我今天可以使用其他替代方法吗?

Kai*_*ido 5

它确实还没有。您可以关注此问题以获取任何进展的更新。

请注意,Firefox 有一个允许 Web Midi API 的标志,可能值得一试,看看他们是否确实处理了它。

  • 更新:Firefox 中的 Web MIDI 根本不起作用。:-( 该标志可能有一天会启用它,但目前看来只是被嘲笑。更糟糕的是,它可能会被撤回。问题跟踪器上有很多关于它和安全问题的不正确信息。 (2认同)