اکنون دسترسی به دستگاه های MIDI به اجازه کاربر نیاز دارد

فرانسوا بوفور
François Beaufort

رابط دیجیتال ابزار موسیقی (MIDI) یک راه استاندارد برای برقراری ارتباط آلات موسیقی الکترونیک، سخت افزار و رایانه است. Web MIDI API به وب سایت ها اجازه می دهد تا سینت سایزرهای مجازی، ماشین های درام یا سایر ابزارها را با اتصال به صفحه کلید یا کنترلر MIDI کاربر کنترل کنند.

پشتیبانی مرورگر

  • 43
  • 79
  • 108
  • ایکس

منبع

به دلیل نگرانی‌های امنیتی برای دسترسی آزادانه به دستگاه‌های MIDI متصل با Web MIDI API، گروه کاری W3C Audio یک مجوز صریح برای استفاده از MIDI API در مشخصات Web MIDI درخواست کرده است. این تغییر که قبلاً فقط برای استفاده پیشرفته MIDI (پیام های SysEx) در Chrome اعمال می شد، اکنون به تعاملات استاندارد MIDI نیز گسترش می یابد.

این بدان معناست که کل Web MIDI API اکنون در پشت یک درخواست مجوز قرار دارد. این تغییر به تدریج در Chrome 124 شروع می شود.

عکس صفحه درخواست مجوز وب MIDI در کروم.
درخواست مجوز وب 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.
  }
}

فقط در صورتی که وب سایت شما کاملاً به این ویژگی نیاز دارد، از طریق navigator.requestMIDIAccess({ sysEx: true }) پشتیبانی پیام های SysEx را درخواست کنید. ممکن است رشته درخواست مجوز Chrome در آینده تغییر کند.

آزمایش کردن

این تغییر به تدریج در Chrome 124 اعمال می شود. ممکن است لازم باشد Chrome را با سوئیچ خط فرمان --enable-features=BlockMidiByDefault اجرا کنید تا آن را به صورت محلی در دستگاه خود فعال کنید.

این تغییر را در وب سایت https://permission.site با کلیک بر روی دکمه های "MIDI" و "MIDI + SysEx" آزمایش کنید.

پشتیبانی از مرورگر

دسترسی به دستگاه‌های MIDI به مجوز کاربر در مرورگرهای Chrome و Firefox نیاز دارد.

بازخورد

تیم Chrome و انجمن استانداردهای وب می‌خواهند درباره تجربیات شما درباره این تغییر بشنوند. با اظهار نظر در مورد مشکلات موجود یا ثبت مشکلات جدید GitHub بازخورد ارائه دهید.

سپاسگزاریها

با تشکر از مایکل ویلسون برای بررسی این پست.