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

François Beaufort
François Beaufort

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

ब्राउज़र के इस्तेमाल से जुड़ी सहायता

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: यह सुविधा काम नहीं करती.

सोर्स

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

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

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

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

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

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

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

आभार

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