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. Ta zmiana, która wcześniej dotyczyła tylko zaawansowanego korzystania z MIDI (wiadomości SysEx) w Chrome, dotyczy teraz również standardowych interakcji MIDI.

Oznacza to, że cały interfejs Web MIDI jest teraz dostępny po wyrażeniu zgody. Ta zmiana jest wprowadzana stopniowo, począwszy od wersji 124 przeglądarki Chrome.

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

Poniższy kod pokazuje, jak obsłużyć prośbę o przyznanie uprawnień wywoływaną przez funkcję navigator.requestMIDIAccess(), 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 włączyć ją lokalnie na urządzeniu, konieczne może być uruchomienie Chrome z opcją 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 chce 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 sprawdzenie tego posta.