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

François Beaufort
François Beaufort

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

תמיכה בדפדפן

  • 43
  • 79
  • 108
  • x

מקור

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

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

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

הקוד הבא מראה איך לטפל בבקשת ההרשאה המופעלת על ידי קריאה ל-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 כדי להפעיל אותו באופן מקומי במכשיר.

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

תמיכת דפדפן

כדי לגשת למכשירי MIDI נדרשת הרשאת משתמש גם בדפדפנים Chrome וגם בדפדפנים Firefox.

משוב

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

אישורים

תודה למייקל ווילסון על ביקורת הפוסט הזה.