MIDIPort
MIDIPort
接口是 Web MIDI API 的一部分,它表示 MIDI 输入或输出端口。
连接新的 MIDI 设备时会创建一个 MIDIPort
实例。因此它没有构造函数。
实例属性
MIDIPort.id
只读-
返回包含端口唯一 ID 的字符串。
MIDIPort.manufacturer
只读-
返回包含端口制造商的字符串。
MIDIPort.name
只读-
返回包含端口系统名称的字符串。
MIDIPort.type
只读-
返回包含端口类型的字符串,以下列出其中之一:
MIDIPort.version
只读-
返回包含端口版本的字符串。
MIDIPort.state
只读-
返回包含端口状态的字符串,以下列出其中之一:
"disconnected"
-
此
MIDIPort
所代表的设备与系统断开连接。 "connected"
-
此
MIDIPort
所代表的设备当前已连接。
MIDIPort.connection
只读-
返回包含端口连接状态的字符串,以下列出其中之一:
实例方法
此接口还继承了来自 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 的浏览器中加载。