MIDIPort

可用性有限

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

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

MIDIPort 接口是 Web MIDI API 的一部分,它表示 MIDI 输入或输出端口。

连接新的 MIDI 设备时会创建一个 MIDIPort 实例。因此它没有构造函数。

EventTarget MIDIPort

实例属性

MIDIPort.id 只读

返回包含端口唯一 ID 的字符串。

MIDIPort.manufacturer 只读

返回包含端口制造商的字符串。

MIDIPort.name 只读

返回包含端口系统名称的字符串。

MIDIPort.type 只读

返回包含端口类型的字符串,以下列出其中之一:

"input"

MIDIPort 是一个输入端口。

"output"

MIDIPort 是一个输出端口。

MIDIPort.version 只读

返回包含端口版本的字符串。

MIDIPort.state 只读

返回包含端口状态的字符串,以下列出其中之一:

"disconnected"

MIDIPort 所代表的设备与系统断开连接。

"connected"

MIDIPort 所代表的设备当前已连接。

MIDIPort.connection 只读

返回包含端口连接状态的字符串,以下列出其中之一:

"open"

MIDIPort 所代表的设备已打开并可用。

"closed"

MIDIPort 所代表的设备尚未打开,或者已关闭。

"pending"

MIDIPort 所代表的设备已打开,但随后断开连接。

实例方法

此接口还继承了来自 EventTarget 的方法。

MIDIPort.open()

使连接到此 MIDIPort 的 MIDI 设备明确可用,并返回一个 Promise,该承诺在成功访问端口后解析。

MIDIPort.close()

使连接到此 MIDIPort 的 MIDI 设备不可用,将 state"open" 更改为 "closed"。这将返回一个 Promise,该承诺在端口关闭后解析。

事件

状态改变

当现有端口更改其状态或连接时调用。

示例

列出端口及其信息

以下示例列出输入和输出端口,并使用 MIDIPort 的属性显示有关它们的信息。

js
function listInputsAndOutputs(midiAccess) {
  for (const entry of midiAccess.inputs) {
    const input = entry[1];
    console.log(
      `Input port [type:'${input.type}'] id:'${input.id}' manufacturer: '${input.manufacturer}' name: '${input.name}' version: '${input.version}'`,
    );
  }

  for (const entry of midiAccess.outputs) {
    const output = entry[1];
    console.log(
      `Output port [type:'${output.type}'] id: '${output.id}' manufacturer: '${output.manufacturer}' name: '${output.name}' version: '${output.version}'`,
    );
  }
}

将可用端口添加到选择列表

以下示例获取输入端口列表,并将它们添加到选择列表中,以便用户可以选择他们想要使用的设备。

js
inputs.forEach((port, key) => {
  const opt = document.createElement("option");
  opt.text = port.name;
  document.getElementById("inputportselector").add(opt);
});

规范

规范
Web MIDI API
# MIDIPort

浏览器兼容性

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