Für den Zugriff auf MIDI-Geräte ist jetzt eine Nutzerberechtigung erforderlich

François Beaufort
François Beaufort

MIDI (Musical Instrument Digital Interface) ist eine Standardmethode für die Kommunikation elektronischer Musikinstrumente, Hardware und Computer. Über die Web MIDI API können Websites virtuelle Synthesizer, Drumcomputer oder andere Instrumente steuern, indem sie eine Verbindung zum MIDI-Tastaturgerät oder dem MIDI-Controller herstellen.

Unterstützte Browser

  • 43
  • 79
  • 108
  • x

Quelle

Aufgrund von Sicherheitsbedenken für den uneingeschränkten Zugriff auf verbundene MIDI-Geräte über die Web MIDI API hat die W3C Audio Working Group eine ausdrückliche Berechtigungsanforderung für die Nutzung der MIDI API in der Web MIDI-Spezifikation angefordert. Diese Änderung, die bisher nur für die erweiterte MIDI-Nutzung (SysEx-Nachrichten) in Chrome bestand, gilt jetzt auch für standardmäßige MIDI-Interaktionen.

Das bedeutet, dass die gesamte Web MIDI API jetzt hinter einer Berechtigungsaufforderung geschützt ist. Diese Änderung wird ab Chrome 124 nach und nach eingeführt.

Screenshot der Web-MIDI-Berechtigungsaufforderung in Chrome.
Web MIDI-Berechtigungsaufforderung in Chrome.

Der folgende Code zeigt, wie Sie mit der Berechtigungsaufforderung umgehen, die durch den Aufruf von navigator.requestMIDIAccess() ausgelöst wird, wenn der Nutzer noch keinen Zugriff gewährt hat.

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

Fordern Sie Support für SysEx-Nachrichten navigator.requestMIDIAccess({ sysEx: true }) nur nur dann an, wenn Ihre Website diese Funktion unbedingt benötigt. Die Strings für die Aufforderung für Chrome-Berechtigungen können sich in Zukunft ändern.

Testen

Diese Änderung wird in Chrome 124 nach und nach eingeführt. Möglicherweise müssen Sie Chrome mit dem Befehlszeilenschalter --enable-features=BlockMidiByDefault ausführen, um ihn lokal auf Ihrem Gerät zu aktivieren.

Sie können diese Änderung auf der Website https://permission.site testen, indem Sie auf die Schaltflächen „MIDI“ und „MIDI + SysEx“ klicken.

Unterstützte Browser

Für den Zugriff auf MIDI-Geräte ist die Nutzerberechtigung sowohl im Chrome- als auch im Firefox-Browser erforderlich.

Feedback

Das Chrome-Team und die Webstandards-Community würden gerne wissen, welche Erfahrungen du mit dieser Änderung gemacht hast. Geben Sie Feedback, indem Sie vorhandene GitHub-Probleme kommentieren oder neue melden.

Danksagungen

Vielen Dank an Michael Wilson, dass du diesen Beitrag bewertet hast.