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 |
瀏覽器相容性
載入中…