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

François Beaufort
François Beaufort

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

ब्राउज़र सहायता

  • Chrome: 43.
  • एज: 79.
  • Firefox: 108.
  • Safari: समर्थित नहीं.

सोर्स

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

इसका मतलब है कि पूरे वेब MIDI एपीआई को अब एक अनुमति संकेत की मदद से सुरक्षित किया गया है. 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 की वेबसाइट पर जाकर, "MIDI" और "MIDI + SysEx" बटन पर क्लिक करके इस बदलाव की जांच करें.

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

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

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

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

स्वीकार की गई

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