الوصول إلى أجهزة 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 بأكملها أصبحت متاحة الآن بعد طلب الحصول على الإذن. سنبدأ بتطبيق هذا التغيير تدريجيًا اعتبارًا من الإصدار 124 من Chrome.

لقطة شاشة لطلب إذن 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 في المستقبل.

الاختبار

يتم طرح هذا التغيير تدريجيًا في الإصدار 124 من Chrome. قد تحتاج إلى تشغيل Chrome باستخدام --enable-features=BlockMidiByDefault مفتاح سطر الأوامر لتفعيله على جهازك.

يمكنك اختبار هذا التغيير على الموقع الإلكتروني https://permission.site من خلال النقر على الزرَّين MIDI وMIDI + SysEx.

دعم المتصفح

يتطلب الوصول إلى أجهزة MIDI إذن المستخدم في كلٍّ من متصفّحَي Chrome وFirefox.

ملاحظات

يريد فريق Chrome ومجتمع معايير الويب معرفة تجاربك مع هذا التغيير. يمكنك تقديم الملاحظات من خلال التعليق على مشاكل GitHub الحالية أو الإبلاغ عن مشاكل جديدة.

الشكر والتقدير

نشكر مايكل ويلسون على مراجعة هذه المشاركة.