1

我建立了一个使用 Chrome web midi 界面(基于 navigator.requestMidiAccess)的网站,该界面在本地开发服务器中运行良好,但是当推送到云服务器时失败,说 navigator.requestMidiAccess 不是一个函数。相同的代码,相同的浏览器。我将尝试包含相关代码:

function initializeMidi() {
    navigator.requestMIDIAccess()
        .then(
            (midi) => midiReady(midi),
            (err) => console.log('Something went wrong', err));
}   

window.onload = (event) => {
    initializeMidi();
};

// this next function builds a list of radio buttons to select the MIDI device
function midiReady(midi) {
    globalMidi = midi.outputs

    parentElement = document.getElementById('midi-devices-div')
    parentElement.innerHTML = ''
    var lastMidiPortName = null
    midi.outputs.forEach(function (port, key) {
        addRadioButton(parentElement, port)
        lastMidiPortName = port.name
    })
    var n = window.localStorage.getItem('selectedMidiPortName')
    if (n)
    {
        var e = document.getElementById(n)
        e.checked = true

    }
}
4

1 回答 1

2

Web MIDI 接口仅对SecureContexts公开,您必须使用https://.

于 2020-07-22T03:57:54.630 回答