כדי לגשת למכשירי MIDI נדרשת עכשיו הרשאת משתמש

François Beaufort
François Beaufort

ממשק דיגיטלי לכלים מוזיקליים (MIDI) הוא ממשק סטנדרטי שבאמצעותו כלי נגינה אלקטרוניים, חומרה ומחשבים יכולים לתקשר. Web MIDI API מאפשר לאתרים לשלוט בסינתיסייזרים וירטואליים, במכונות תופים או בכלים אחרים באמצעות חיבור למקלדת או לבקר ה-MIDI של המשתמש.

תמיכה בדפדפנים

  • Chrome: 43.
  • Edge:‏ 79.
  • Firefox:‏ 108.
  • Safari: לא נתמך.

מקור

בגלל חששות אבטחה לגבי גישה חופשית להתקני MIDI מחוברים באמצעות Web MIDI API, קבוצת העבודה של W3C בנושא אודיו ביקשה דרישה להרשאה מפורשת לכל השימוש ב-MIDI API במפרט Web MIDI. השינוי הזה, שהיה בתוקף בעבר רק לשימוש מתקדם ב-MIDI (הודעות SysEx) ב-Chrome, חל עכשיו גם על אינטראקציות רגילות ב-MIDI.

המשמעות היא שכל Web MIDI API מוגן עכשיו באמצעות בקשה להרשאה. השינוי הזה יושק בהדרגה החל מ-Chrome 124.

צילום מסך של בקשת ההרשאה ל-Web MIDI ב-Chrome.
הנחיה ב-Chrome לבקשת הרשאה ל-Web MIDI.

הקוד הבא מראה איך מטפלים בהודעת ההרשאה שמופיעה כשקוראים ל-navigator.requestMIDIAccess() והמשתמש עדיין לא העניק גישה.

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

כדאי לבקש תמיכה בהודעות SysEx באמצעות navigator.requestMIDIAccess({ sysEx: true }) רק אם האתר שלכם זקוק לתכונה הזו באופן חיוני. מחרוזות ההנחיות של Chrome לבקשת הרשאה עשויות להשתנות בעתיד.

בדיקה

השינוי הזה יושק בהדרגה ב-Chrome 124. יכול להיות שתצטרכו להפעיל את Chrome עם מקש הפקודה --enable-features=BlockMidiByDefault כדי להפעיל אותו באופן מקומי במכשיר.

כדי לבדוק את השינוי הזה, לוחצים על הלחצנים 'MIDI' ו-'MIDI + SysEx' באתר https://permission.site.

תמיכה בדפדפנים

כדי לגשת למכשירי MIDI, צריך הרשאת משתמש גם בדפדפן Chrome וגם בדפדפן Firefox.

משוב

צוות Chrome וקהילת תקני האינטרנט רוצים לשמוע על החוויה שלכם עם השינוי הזה. אתם יכולים לשלוח משוב על ידי הוספת תגובה על בעיות קיימות או שליחת בעיות חדשות ב-GitHub.

תודות

תודה ל-Michael Wilson על בדיקת הפוסט הזה.