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.
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.
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.
Przydatne linki
Podziękowania
Dziękujemy Michaelowi Wilsonowi za przeczytanie tego posta.