Dostęp do urządzeń MIDI wymaga teraz zgody użytkownika

François Beaufort
François Beaufort

Musical Instrument Digital Interface (MIDI) to standardowy sposób komunikacji elektronicznej instrumentów muzycznych, sprzętu i komputerów. Interfejs Web MIDI API umożliwia witrynom sterowanie syntezatorami wirtualnymi, automatami perkusyjnymi i innymi instrumentami przez połączenie z klawiaturą MIDI lub kontrolerem użytkownika.

Obsługa przeglądarek

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: nieobsługiwane.

Źródło

Ze względu na problemy z bezpieczeństwem związane z otwartym dostępem do podłączonych urządzeń MIDI za pomocą interfejsu Web MIDI, grupa robocza W3C ds. dźwięku zażądała wyraźnego wymagania dotyczącego uprawnień do wszystkich interfejsów MIDI API w specyfikacji Web MIDI. Wcześniej ta zmiana dotyczyła tylko zaawansowanych funkcji MIDI (komunikatów SysEx) w Chrome, a teraz obejmuje także standardowe interakcje MIDI.

Oznacza to, że cały interfejs Web MIDI jest teraz dostępny po udzieleniu uprawnień. Tę zmianę wprowadzamy stopniowo, począwszy od Chrome 124.

Zrzut ekranu pokazujący prośbę o uprawnienia do Web MIDI w Chrome
Prośba o przyznanie uprawnień Web MIDI w Chrome.

Ten kod pokazuje, jak postępować w przypadku prośby o przyznanie uprawnień aktywowaną przez wywołanie funkcji navigator.requestMIDIAccess() w sytuacji, gdy użytkownik nie przyznał jeszcze dostępu.

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.
  }
}

Poproś o obsługę wiadomości SysEx navigator.requestMIDIAccess({ sysEx: true }) tylko, jeśli Twoja witryna absolutnie potrzebuje tej funkcji. W przyszłości ciągi znaków w prośbach o uprawnienia w Chrome mogą się zmienić.

Testowanie

Ta zmiana jest stopniowo wprowadzana w Chrome 124. Aby można było włączyć Chrome lokalnie na urządzeniu, konieczne może być uruchomienie Chrome z przełącznikiem wiersza poleceń --enable-features=BlockMidiByDefault.

Przetestuj tę zmianę na stronie https://permission.site, klikając przyciski „MIDI” i „MIDI + SysEx”.

Obsługa przeglądarek

Dostęp do urządzeń MIDI wymaga zgody użytkownika zarówno w przeglądarce Chrome, jak i Firefox.

Prześlij opinię

Zespół Chrome i społeczność zajmująca się standardami internetowymi chcą poznać Twoje wrażenia związane z tą zmianą. Prześlij opinię, komentując istniejące problemy w GitHub lub zgłaszając nowe.

Podziękowania

Dziękujemy Michaelowi Wilsonowi za przeczytanie tego posta.