Я пытался понять, как использовать Web MIDI API на chrome. Я пытаюсь следить за информацией в документах MDN и могу получить информацию о виртуальной клавиатуре пианино MIDI, которую я установил в macOS.
Используя следующий код, я могу убедиться, что я возможность получить информацию об устройстве MIDI
navigator.requestMIDIAccess()
.then(onMIDISuccess, onMIDIFailure);
function onMIDISuccess(midiAccess) {
console.log(midiAccess);
var inputs = midiAccess.inputs;
var outputs = midiAccess.outputs;
}
function onMIDIFailure() {
console.log('Could not access your MIDI devices.');
}
Но мне не предлагается разрешить веб-сайту доступ к моему устройству MIDI, как я ожидал.
Я пытался использовать код, найденный в документах MDN, чтобы получить onmidimessage
.
// Printing all messages to console
navigator.requestMIDIAccess().then(midiAccess => {
Array.from(midiAccess.inputs).forEach(input => {
input[1].onmidimessage = console.log;
})
});
https://developer.mozilla.org/en-US/docs/Web/API/MIDIMessageEvent
Я не получаю никакой ошибки, могу console.log(input[1])
и посмотрите результаты. Но когда я нажимаю клавиши на виртуальной клавиатуре пианино MIDI, ничего не происходит, я не вижу ничего записанного в консоль.
Так что я очень растерялся и не могу найти информацию о том, как чтобы заставить это работать. У кого-нибудь есть идеи, как получить события с MIDI-устройства?