Доступ к MIDI-устройствам теперь требует разрешения пользователя.

Франсуа Бофор
François Beaufort

Цифровой интерфейс музыкальных инструментов (MIDI) — это стандартный способ связи между электронными музыкальными инструментами, оборудованием и компьютерами. Web MIDI API позволяет веб-сайтам управлять виртуальными синтезаторами, драм-машинами или другими инструментами путем подключения к MIDI-клавиатуре или контроллеру пользователя.

Поддержка браузера

  • Хром: 43.
  • Край: 79.
  • Фаерфокс: 108.
  • Сафари: не поддерживается.

Источник

Из соображений безопасности для свободного доступа к подключенным MIDI-устройствам с помощью Web MIDI API рабочая группа W3C Audio запросила явное требование разрешения для всего использования MIDI API в спецификации Web MIDI. Это изменение, которое ранее применялось только для расширенного использования MIDI (сообщений SysEx) в Chrome, теперь распространяется и на стандартные взаимодействия MIDI.

Это означает, что весь веб-MIDI API теперь защищен запросом разрешения. Это изменение постепенно внедряется, начиная с Chrome 124.

Снимок экрана с запросом разрешения Web MIDI в Chrome.
Запрос разрешения Web MIDI в Chrome.

Следующий код показывает, как обрабатывать запрос разрешения, вызываемый вызовом 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 .

Благодарности

Спасибо Майклу Уилсону за просмотр этого поста.