Voor toegang tot MIDI-apparaten is nu gebruikerstoestemming vereist

François Beaufort
François Beaufort

Musical Instrument Digital Interface (MIDI) is een standaardmanier waarop elektronische muziekinstrumenten, hardware en computers kunnen communiceren. Met de Web MIDI API kunnen websites virtuele synthesizers, drummachines of andere instrumenten besturen door verbinding te maken met het MIDI-toetsenbord of de controller van de gebruiker.

Browserondersteuning

  • 43
  • 79
  • 108
  • X

Bron

Vanwege beveiligingsproblemen om vrije toegang te krijgen tot aangesloten MIDI-apparaten met de Web MIDI API, heeft de W3C Audio Working Group een expliciete toestemmingsvereiste aangevraagd voor al het MIDI API-gebruik in de Web MIDI-specificatie. Deze wijziging, die voorheen alleen van kracht was voor geavanceerd MIDI-gebruik (SysEx-berichten) in Chrome, strekt zich nu ook uit tot standaard MIDI-interacties.

Dit betekent dat de volledige Web MIDI API nu achter een toestemmingsprompt staat. Deze wijziging wordt geleidelijk uitgerold vanaf Chrome 124.

Schermafbeelding van de toestemmingsprompt voor Web MIDI in Chrome.
Web MIDI-toestemmingsprompt in Chrome.

De volgende code laat zien hoe u omgaat met de toestemmingsprompt die wordt geactiveerd door het aanroepen van navigator.requestMIDIAccess() wanneer de gebruiker nog geen toegang heeft verleend.

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

Vraag ondersteuning voor SysEx-berichten alleen aan met navigator.requestMIDIAccess({ sysEx: true }) als uw website deze functie absoluut nodig heeft. Chrome-toestemmingspromptreeksen kunnen in de toekomst veranderen.

Testen

Deze wijziging wordt geleidelijk doorgevoerd in Chrome 124. Mogelijk moet u Chrome uitvoeren met de opdrachtregeloptie --enable-features=BlockMidiByDefault om deze optie lokaal op uw apparaat in te schakelen.

Test deze wijziging op de website https://permission.site door op de knoppen "MIDI" en "MIDI + SysEx" te klikken.

Browser-ondersteuning

Voor toegang tot MIDI-apparaten is gebruikerstoestemming vereist in zowel Chrome- als Firefox-browsers.

Feedback

Het Chrome-team en de webstandaardgemeenschap willen graag horen wat uw ervaringen met deze wijziging zijn. Geef feedback door commentaar te geven op bestaande of nieuwe GitHub-problemen in te dienen.

Dankbetuigingen

Met dank aan Michael Wilson voor het beoordelen van dit bericht.