Цифровой интерфейс музыкальных инструментов (MIDI) — это стандартный способ связи между электронными музыкальными инструментами, оборудованием и компьютерами. Web MIDI API позволяет веб-сайтам управлять виртуальными синтезаторами, драм-машинами или другими инструментами путем подключения к MIDI-клавиатуре или контроллеру пользователя.
Из соображений безопасности для свободного доступа к подключенным MIDI-устройствам с помощью Web MIDI API рабочая группа W3C Audio запросила явное требование разрешения для всего использования MIDI API в спецификации Web MIDI. Это изменение, которое ранее применялось только для расширенного использования MIDI (сообщений SysEx) в Chrome, теперь распространяется и на стандартные взаимодействия MIDI.
Это означает, что весь веб-MIDI API теперь защищен запросом разрешения. Это изменение постепенно внедряется, начиная с Chrome 124.
Следующий код показывает, как обрабатывать запрос разрешения, вызываемый вызовом navigator.requestMIDIAccess()
когда доступ еще не предоставлен пользователем.
try {
// Prompt user to access MIDI devices.
const access = await navigator.requestMIDIAccess();
// Get lists of available MIDI controllers...
} catch (error) {
if (error.name === "SecurityError") {
// The website is not allowed to control and reprogram MIDI devices.
}
}
Запрашивайте поддержку сообщений SysEx с помощью navigator.requestMIDIAccess({ sysEx: true })
только если вашему веб-сайту абсолютно необходима эта функция. Строки запроса разрешений Chrome могут измениться в будущем.
Тестирование
Это изменение постепенно внедряется в Chrome 124. Возможно, вам придется запустить Chrome с ключом командной строки --enable-features=BlockMidiByDefault
чтобы включить его локально на вашем устройстве.
Проверьте это изменение на сайте https://permission.site , нажав кнопки «MIDI» и «MIDI + SysEx».
Поддержка браузера
Для доступа к MIDI-устройствам требуется разрешение пользователя в браузерах Chrome и Firefox.
Обратная связь
Команда Chrome и сообщество веб-стандартистов хотят услышать о вашем опыте применения этого изменения. Оставляйте отзывы, комментируя существующие или сообщая о новых проблемах GitHub .
Полезные ссылки
Благодарности
Спасибо Майклу Уилсону за просмотр этого поста.