MIDIOutput:send() 方法

可用性有限

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

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

语法

js
send(data)
send(data, timestamp)

参数

data

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

timestamp 可选

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

返回值

无(undefined)。

异常

TypeError

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

InvalidAccessError DOMException

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

InvalidStateError DOMException

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

示例

在下面的示例中,立即发送一个中央 C 音符,一秒钟后发送一个音符关闭消息。

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

浏览器兼容性