Musical Instrument Digital Interface (MIDI) คือวิธีมาตรฐานสำหรับการสื่อสารของเครื่องดนตรีอิเล็กทรอนิกส์ ฮาร์ดแวร์ และคอมพิวเตอร์ Web MIDI API ช่วยให้เว็บไซต์ควบคุมเครื่องสังเคราะห์เสียงเสมือนจริง ดรัมแมชชีน หรือเครื่องดนตรีอื่นๆ ได้โดยเชื่อมต่อกับแป้นพิมพ์หรือตัวควบคุม MIDI ของผู้ใช้
เนื่องจากมีข้อกังวลด้านความปลอดภัยในการเข้าถึงอุปกรณ์ MIDI ที่เชื่อมต่อด้วย Web MIDI API อย่างอิสระ กลุ่มทำงานด้านเสียงของ W3C จึงขอข้อกำหนดสิทธิ์ที่ชัดเจนสำหรับการใช้งาน 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.
}
}
ขอรับการสนับสนุนเกี่ยวกับข้อความ SysEx กับ navigator.requestMIDIAccess({ sysEx: true })
เฉพาะในกรณีที่เว็บไซต์ของคุณต้องการฟีเจอร์นี้จริงๆ เท่านั้น สตริงข้อความแจ้งเกี่ยวกับสิทธิ์ของ Chrome อาจมีการเปลี่ยนแปลงในอนาคต
การทดสอบ
เราจะทยอยเปิดตัวการเปลี่ยนแปลงนี้ใน Chrome 124 คุณอาจต้องเรียกใช้ Chrome ด้วยสวิตช์บรรทัดคำสั่ง --enable-features=BlockMidiByDefault
เพื่อเปิดใช้ในอุปกรณ์
ทดสอบการเปลี่ยนแปลงนี้ในเว็บไซต์ https://permission.site โดยคลิกปุ่ม "MIDI" และ "MIDI + SysEx"
การสนับสนุนเบราว์เซอร์
การเข้าถึงอุปกรณ์ MIDI ต้องใช้สิทธิ์ของผู้ใช้ทั้งในเบราว์เซอร์ Chrome และ Firefox
ความคิดเห็น
ทีม Chrome และชุมชนมาตรฐานเว็บอยากทราบความคิดเห็นของคุณเกี่ยวกับการเปลี่ยนแปลงนี้ แสดงความคิดเห็นโดยแสดงความคิดเห็นในปัญหา GitHub ที่มีอยู่หรือแจ้งปัญหาใหม่
ลิงก์ที่มีประโยชน์
ขอขอบคุณ
ขอขอบคุณ Michael Wilson ที่ตรวจสอบโพสต์นี้