L'accès aux appareils MIDI nécessite désormais l'autorisation de l'utilisateur

François Beaufort
François Beaufort

L'interface MIDI (Musical Instrument Digital Interface) est une interface standard permettant aux instruments de musique électroniques, au matériel et aux ordinateurs de communiquer. L'API Web MIDI permet aux sites Web de contrôler des synthétiseurs virtuels, des batteries ou d'autres instruments en se connectant au clavier ou à la télécommande MIDI de l'utilisateur.

Navigateurs pris en charge

  • 43
  • 79
  • 108
  • x

Source

En raison de problèmes de sécurité liés à l'accès libre aux appareils MIDI connectés avec l'API Web MIDI, le groupe de travail audio W3C a demandé une autorisation explicite pour toutes les utilisations de l'API MIDI dans la spécification Web MIDI. Ce changement, auparavant en vigueur uniquement pour l'utilisation MIDI avancée (messages SysEx) dans Chrome, s'applique désormais également aux interactions MIDI standards.

Cela signifie que l'ensemble de l'API Web MIDI est désormais protégé par une invite d'autorisation. Cette modification sera déployée progressivement à partir de Chrome 124.

Capture d'écran de l'invite d'autorisation Web MIDI dans Chrome.
Invite d'autorisation Web MIDI dans Chrome.

Le code suivant vous montre comment gérer l'invite d'autorisation déclenchée en appelant navigator.requestMIDIAccess() lorsque l'accès n'a pas déjà été accordé par l'utilisateur.

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

Demandez de l'aide pour les messages SysEx avec navigator.requestMIDIAccess({ sysEx: true }) uniquement si votre site Web en a absolument besoin. Les chaînes d'invite d'autorisation Chrome sont susceptibles de changer à l'avenir.

Test

Cette modification est déployée progressivement dans Chrome 124. Vous devrez peut-être exécuter Chrome avec le bouton de ligne de commande --enable-features=BlockMidiByDefault pour l'activer localement sur votre appareil.

Testez cette modification sur le site Web https://permission.site en cliquant sur les boutons "MIDI" et "MIDI + SysEx".

Prise en charge des navigateurs

L'accès aux appareils MIDI nécessite l'autorisation de l'utilisateur dans les navigateurs Chrome et Firefox.

Commentaires

L'équipe Chrome et la communauté des normes Web souhaitent connaître votre avis sur ce changement. Faites-nous part de vos commentaires sur les problèmes existants ou signalez de nouveaux problèmes GitHub.

Remerciements

Merci à Michael Wilson d'avoir évalué ce post.