رابط دیجیتال ابزار موسیقی (MIDI) یک راه استاندارد برای برقراری ارتباط آلات موسیقی الکترونیک، سخت افزار و رایانه است. Web MIDI API به وب سایت ها اجازه می دهد تا سینت سایزرهای مجازی، ماشین های درام یا سایر ابزارها را با اتصال به صفحه کلید یا کنترلر MIDI کاربر کنترل کنند.
به دلیل نگرانیهای امنیتی برای دسترسی آزادانه به دستگاههای MIDI متصل با Web MIDI API، گروه کاری W3C Audio یک مجوز صریح برای استفاده از MIDI API در مشخصات Web MIDI درخواست کرده است. این تغییر که قبلاً فقط برای استفاده پیشرفته MIDI (پیام های SysEx) در Chrome اعمال می شد، اکنون به تعاملات استاندارد MIDI نیز گسترش می یابد.
این بدان معناست که کل Web MIDI API اکنون در پشت یک درخواست مجوز قرار دارد. این تغییر به تدریج در Chrome 124 شروع می شود.
کد زیر به شما نشان میدهد که چگونه با فراخوانی 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 بازخورد ارائه دهید.
لینک های مفید
قدردانی ها
با تشکر از مایکل ویلسون برای بررسی این پست.