接続されている MIDI 入力デバイスを一覧表示する簡単なスクリプトを作成しました。これは Windows 上の Chrome では問題なく動作しますが、Mac 上の Chrome では「未定義のプロパティ名を読み取れません」というエラーが表示されて失敗します。これは、w3c.org の例からコードをコピーして貼り付けた場合にも発生します: http://www.w3.org/TR/webmidi/#listing-inputs-and-outputs
これが私のコードです:
var midiTest = {
midiAcess: null,
init: function() {
function onMIDISuccess(midiAccess) {
console.log(midiAccess);
var inputDeviceCount = midiAccess.inputs.size;
if(inputDeviceCount > 0) {
for(var i=0; i<inputDeviceCount; i++) {
var input = midiAccess.inputs.get(i);
var deviceName = input.name;
console.log(deviceName);
}
}
}
function onMIDIFailure(e) {
console.log('No access to MIDI devices' + e);
}
if(navigator.requestMIDIAccess)
navigator.requestMIDIAccess({ sysex: false }).then(onMIDISuccess, onMIDIFailure);
else
alert("No MIDI support in your browser.");
},
};
midiTest.init();
console.log(midiAccess) は正常に動作します。ここで何が起こっているのか分かりますか?