MIDIOutput: send() 方法

有限可用性

此功能不是基线功能,因为它在某些最广泛使用的浏览器中不起作用。

安全上下文:此功能仅在安全上下文(HTTPS)中,在某些或所有支持的浏览器中可用。

send()MIDIOutput 接口的方法,它将消息排队到相应的 MIDI 端口。消息可以立即发送,也可以使用可选的时间戳延迟发送。

语法

js
send(data)
send(data, timestamp)

参数

data

一个或多个有效 MIDI 消息的序列。每个条目表示一个字节的数据。

timestamp 可选

一个DOMHighResTimeStamp,表示应发送消息的时间(以毫秒为单位,相对于Performance.timeOrigin)。

返回值

无 (undefined).

异常

TypeError

如果 data 不是有效的序列,或者不包含有效的 MIDI 消息,则抛出此异常。

InvalidAccessError DOMException

如果 data 是系统独占消息,并且 MIDIAccess 未启用独占访问,则抛出此异常。

InvalidStateError DOMException

如果端口断开连接,则抛出此异常。

示例

在以下示例中,立即发送一个中央 C 音符,并在 1 秒后发送一个音符关闭消息。

js
function sendMiddleC(midiAccess, portID) {
  const noteOnMessage = [0x90, 60, 0x7f]; // note on middle C, full velocity
  const output = midiAccess.outputs.get(portID);
  output.send(noteOnMessage); //omitting the timestamp means send immediately.
  output.send([0x80, 60, 0x40], window.performance.now() + 1000.0); // timestamp = now + 1000ms.
}

规范

规范
Web MIDI API
# dom-midioutput-send

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。