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.
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.
De volgende code laat zien hoe u omgaat met de toestemmingsprompt die wordt geactiveerd door het aanroepen navigator.requestMIDIAccess()
wanneer er nog geen toegang is verleend door de gebruiker.
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.
Handige links
Dankbetuigingen
Met dank aan Michael Wilson voor het beoordelen van dit bericht.