Используйте веб-MIDI API HTML5

Я пытаюсь создать простое веб-приложение для синтезатора, используя API веб-аудио, и я хочу использовать его с моей MIDI-клавиатурой через веб-MIDI API, поэтому я пробовал эти инструкции как в Chrome, так и в Chrome Canary, но всегда получаю " navigator.getMIDIAccess не является функцией», версия 40 для Chrome и 42 для Chrome Canary, как в Mac OS X (10.10.2), так и экспериментальный флаг был включен. Код пока очень простой (это тест):

<script type="text/javascript">
try{
    //navigator.getMIDIAccess = ( navigator.getMIDIAccess || navigator.webkitGetMIDIAccess || navigator.mozGetMIDIAccess || navigator.msGetMIDIAccess);
    navigator.getMIDIAccess(_event_success, function(){
        alert("ERROR");
    });
}catch(ex){
    console.log(ex);
    alert("NOT SUPPORTED");
}

function _event_success(){
    console.log("OK");
}
</script>

Где ошибка? Если это может быть полезно, я использую клавиатуру M-AUDIO Keystation88 на USB. Только ли Chrome поддерживает эту функцию?


person RyanJ    schedule 21.02.2015    source источник


Ответы (1)


Вызов API — «requestMIDIAccess». (Это не префикс.)

person cwilso    schedule 21.02.2015
comment
Я сделал попытку использовать префиксы без успеха, поэтому после этого я прокомментировал строку. Итак, правильная форма — навигатор. запросMIDIAccess (при успехе, при ошибке);? - person RyanJ; 22.02.2015
comment
(Извините за задержку) - вроде как - есть объект параметров, который вы можете передать, чтобы запросить эксклюзивную поддержку системы. В вашем случае вы можете передать пустой объект (или null) - так navigator.requestMIDIAccess(null, onSuccess, onError). - person cwilso; 03.03.2015
comment
Большое спасибо за помощь, я сделал простой пример, и он отлично работает, вот код, если он может быть полезен кому-то еще с этой проблемой: gist.github.com/RyanJ93/8c0d78323ab13787ea51 - person RyanJ; 06.03.2015