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,该 Promise 在成功访问端口后解析。 MIDIPort.close()-
使连接到此
MIDIPort的 MIDI 设备不可用,将state从"open"更改为"closed"。这会返回一个Promise,该 Promise 在端口关闭后解析。
事件
statechange-
当现有端口更改其状态或连接时调用。
示例
列出端口及其信息
以下示例列出了输入和输出端口,并使用 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("port-selector").add(opt);
});
规范
| 规范 |
|---|
| Web MIDI API # MIDIPort |
浏览器兼容性
加载中…