एमआईडीआई डिवाइसों को ऐक्सेस करने के लिए, अब उपयोगकर्ता की अनुमति ज़रूरी है

François Beaufort
François Beaufort

म्यूज़िकल इंस्ट्रुमेंट डिजिटल इंटरफ़ेस (एमआईडीआई), इलेक्ट्रॉनिक म्यूज़िकल इंस्ट्रुमेंट, हार्डवेयर, और कंप्यूटर के बीच कम्यूनिकेट करने का स्टैंडर्ड तरीका है. Web MIDI API की मदद से, वेबसाइटें उपयोगकर्ता के एमआईडीआई कीबोर्ड या कंट्रोलर से कनेक्ट करके, वर्चुअल सिंथेसाइज़र, ड्रम मशीन या अन्य इंस्ट्रूमेंट को कंट्रोल कर सकती हैं.

Browser Support

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: not supported.

Source

वेब MIDI एपीआई की मदद से, कनेक्ट किए गए एमआईडीआई डिवाइसों को आसानी से ऐक्सेस करने से जुड़ी सुरक्षा से जुड़ी समस्याओं की वजह से, W3C ऑडियो वर्किंग ग्रुप ने वेब MIDI स्पेसिफ़िकेशन में, एमआईडीआई एपीआई के सभी इस्तेमाल के लिए साफ़ तौर पर अनुमति देने की ज़रूरत का अनुरोध किया है. यह बदलाव, पहले Chrome में MIDI के बेहतर इस्तेमाल (SysEx मैसेज) के लिए ही लागू था. अब यह स्टैंडर्ड MIDI इंटरैक्शन पर भी लागू होगा.

इसका मतलब है कि अब Web MIDI API का पूरा ऐक्सेस पाने के लिए, अनुमति का अनुरोध करना ज़रूरी है. यह बदलाव, Chrome 124 से धीरे-धीरे रोल आउट किया जा रहा है.

Chrome में वेब एमआईडीआई की अनुमति के लिए प्रॉम्प्ट का स्क्रीनशॉट.
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.
  }
}

अगर आपकी वेबसाइट को इस सुविधा की ज़रूरत है, तो navigator.requestMIDIAccess({ sysEx: true }) सिर्फ़ SysEx मैसेज की सहायता का अनुरोध करें. आने वाले समय में, Chrome की अनुमति के लिए प्रॉम्प्ट की स्ट्रिंग बदल सकती हैं.

टेस्ट करना

यह बदलाव, Chrome 124 में धीरे-धीरे रोल आउट किया जा रहा है. अपने डिवाइस पर यह सुविधा चालू करने के लिए, आपको --enable-features=BlockMidiByDefault कमांड-लाइन स्विच के साथ Chrome चलाना पड़ सकता है.

https://permission.site वेबसाइट पर, "एमआईडीआई" और "एमआईडीआई + SysEx" बटन पर क्लिक करके, इस बदलाव की जांच करें.

ब्राउज़र समर्थन

एमआईडीआई डिवाइसों को ऐक्सेस करने के लिए, Chrome और Firefox, दोनों ब्राउज़र में उपयोगकर्ता की अनुमति लेनी होगी.

सुझाव/राय दें या शिकायत करें

Chrome की टीम और वेब स्टैंडर्ड कम्यूनिटी को यह जानना है कि इस बदलाव से आपको क्या अनुभव मिला. मौजूदा GitHub समस्याओं पर टिप्पणी करके या नई समस्याएं दर्ज करके सुझाव/राय दें.

आभार

इस पोस्ट की समीक्षा करने के लिए, माइकल विल्सन का धन्यवाद.