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

François Beaufort
François Beaufort

Musical Instrument Digital Interface (MIDI) ist eine Standardmethode für die Kommunikation elektronischer Musikinstrumente, Hardware und Computer. Mit der Web MIDI API können Websites virtuelle Synthesizer, Drumcomputer oder andere Instrumente steuern, indem eine Verbindung zum MIDI-Keyboard oder ‑Controller des Nutzers hergestellt wird.

Unterstützte Browser

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108
  • Safari: Nicht unterstützt.

Quelle

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

Das bedeutet, dass der Zugriff auf die gesamte Web MIDI API jetzt über eine Berechtigungsaufforderung gesteuert wird. Diese Änderung wird ab Chrome 124 schrittweise eingeführt.

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

Im folgenden Code wird gezeigt, wie Sie mit der Berechtigungsanfrage umgehen, die durch den Aufruf von navigator.requestMIDIAccess() ausgelöst wird, wenn der Zugriff vom Nutzer noch nicht gewährt wurde.

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 nur dann Unterstützung für SysEx-Nachrichten mit navigator.requestMIDIAccess({ sysEx: true }) an, wenn diese Funktion für Ihre Website unbedingt erforderlich ist. Die Prompt-Strings für Chrome-Berechtigungen können sich in Zukunft ändern.

Test

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

Teste diese Änderung auf der Website https://permission.site, indem du auf die Schaltflächen „MIDI“ und „MIDI + SysEx“ klickst.

Unterstützte Browser

Der Zugriff auf MIDI-Geräte erfordert sowohl im Chrome- als auch im Firefox-Browser die Nutzerberechtigung.

Feedback

Das Chrome-Team und die Webstandards-Community möchten gerne wissen, wie Sie diese Änderung erlebt haben. Sie können uns Feedback geben, indem Sie vorhandene GitHub-Probleme kommentieren oder neue einreichen.

Danksagungen

Vielen Dank an Michael Wilson für die Rezension dieses Beitrags.