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 ที่ตรวจสอบโพสต์นี้