Chrome 87 को अब स्टेबल वर्शन के तौर पर रोल आउट किया जा रहा है.
यहां आपके जानने योग्य तथ्य दिए गए हैं:
- Chrome Dev Summit 9 और 10 दिसंबर को फिर से शुरू हो रहा है.
- अब वेबकैम पर पैन, झुकाना, और ज़ूम किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वेबकैम में यह सुविधा काम करती हो.
- रेंज के अनुरोधों और सर्विस वर्कर के लिए ज़्यादा समाधान की ज़रूरत नहीं होती.
- font access API का ऑरिजिन ट्रायल शुरू होता है.
- इसके अलावा, और भी बहुत कुछ है.
नमस्ते, मैं पीट लेपेज हूं. फ़िलहाल, मैं घर से काम कर रहा हूं और वीडियो रिकॉर्ड कर रहा हूं. आइए, Chrome 87 में डेवलपर के लिए क्या नया है, इस बारे में जानें!
Chrome Dev Summit
Chrome Dev Summit का आठवां चैप्टर 9 और 10 दिसंबर को होगा. हालाँकि, इस बार हम आपसे संपर्क कर रहे हैं. हम आपको सभी नए अपडेट, ढेर सारा नया कॉन्टेंट, और कई Chromeys उपलब्ध करा रहे हैं.
इसमें कई शानदार बातचीत, वर्कशॉप, ऑफ़िस में कामकाज के घंटे वगैरह शामिल हैं. साथ ही, हम YouTube चैट में आपके सवालों के जवाब देंगे. ज़्यादा जानें और यह पता लगाएं कि लाइव स्ट्रीम को सिर्फ़ देखने के अलावा, उसमें कैसे हिस्सा लिया जा सकता है!
कैमरे को पैन करना, झुकाना, और ज़ूम करना
Google के ज़्यादातर मीटिंग रूम में पैन, टिल्ट, और ज़ूम करने की सुविधा वाले कैमरे होते हैं. इससे, कैमरे को कमरे में मौजूद लोगों पर फ़ोकस किया जा सकता है. हालांकि, सिर्फ़ बेहतरीन क्वालिटी वाले कॉन्फ़्रेंस कैमरे ही पैन, झुकाने, और ज़ूम करने की सुविधा के साथ काम नहीं करते. कई वेब कैमरे भी इस सुविधा के साथ काम करते हैं.
Chrome 87 से, उपयोगकर्ता की अनुमति मिलने के बाद, कैमरे पर PTZ सुविधाओं को कंट्रोल किया जा सकता है.
फ़ीचर का पता लगाने की सुविधा, शायद आपके लिए थोड़ी अलग हो.
ब्राउज़र में PTZ की सुविधा काम करती है या नहीं, यह जानने के लिए आपको navigator.mediaDevices.getSupportedConstraints()
को कॉल करना होगा.
const supports = navigator.mediaDevices.getSupportedConstraints();
if (supports.pan && supports.tilt && supports.zoom) {
// Browser supports camera PTZ.
}
इसके बाद, अन्य सभी बेहतर एपीआई की तरह, उपयोगकर्ता को कैमरे के साथ-साथ PTZ फ़ंक्शन के लिए भी अनुमति देनी होगी.
पीटीज़ (ज़ूम इन/आउट, टिलट, और स्विच) की सुविधा के लिए अनुमति का अनुरोध करने के लिए, पीटीज़ की सीमाओं के साथ navigator.mediaDevices.getUserMedia()
को कॉल करें. ऐसा करने पर, उपयोगकर्ता को सामान्य कैमरा और कैमरा, दोनों के लिए पीटीज़ेड की अनुमतियां देने के लिए कहा जाएगा.
try {
const opts = {video: {pan: true, tilt: true, zoom: true}};
const stream = await navigator.mediaDevices.getUserMedia(opts);
document.querySelector("#video").srcObject = stream;
} catch (error) {
// User denies prompt, or
// matching media is not available.
}
आखिर में, MediaStreamTrack.getSettings()
को कॉल करने से आपको पता चलेगा कि कैमरे में कौनसे फ़ंक्शन काम करते हैं.
const [videoTrack] = stream.getVideoTracks();
const capabilities = videoTrack.getCapabilities();
const settings = videoTrack.getSettings();
if ('pan' in settings) {
enablePan(capabilities, settings);
}
// Similar for tilt and zoom...
उपयोगकर्ता से अनुमति मिलने के बाद, पैन, झुका, और ज़ूम करने के तरीके में बदलाव करने के लिए videoTrack.applyConstraints()
को कॉल करें.
function enablePan(capabilities, settings) {
const input = document.getElementById('rangePan');
input.min = capabilities.pan.min;
input.max = capabilities.pan.max;
input.step = capabilities.pan.step;
input.value = settings.pan;
input.addEventListener('input', async () => {
const opts = { advanced: [{ pan: input.value }] };
await videoTrack.applyConstraints(opts);
});
}
निजी तौर पर, मैं पीटीज़ेड को लेकर बहुत उत्साहित हूं, ताकि मैं अपनी बेतरतीब किचन को छिपा सकूं. लेकिन, इसके लिए आपको वीडियो देखना पड़ेगा!
फ़्रांकोइस ने web.dev पर कैमरे के पैन, टिल्ट, और ज़ूम को कंट्रोल करना के बारे में एक बेहतरीन पोस्ट लिखी है. इसमें कोड के सैंपल, अनुमति का अनुरोध करने के सबसे सही तरीके की पूरी जानकारी, और एक डेमो दिया गया है. इससे आपको यह आज़माने में मदद मिलेगी कि आपका वेबकैम PTZ के साथ काम करता है या नहीं.
रेंज के अनुरोध और सेवा वर्कर
एचटीटीपी रेंज अनुरोध, कई सालों से मुख्य ब्राउज़र में उपलब्ध हैं. इनकी मदद से, सर्वर क्लाइंट को अनुरोध किया गया डेटा, अलग-अलग हिस्सों में भेज सकते हैं. यह सुविधा खास तौर पर बड़ी मीडिया फ़ाइलों के लिए काम की है. इनमें, वीडियो को आसानी से चलाने, बेहतर तरीके से स्क्रेब करने, और वीडियो को रोकने और फिर से चलाने की सुविधाओं की मदद से, उपयोगकर्ता अनुभव को बेहतर बनाया जाता है.
पहले, रेंज का अनुरोध करने वाले और सेवा देने वाले कर्मचारी एक साथ ठीक से काम नहीं करते थे जिससे डेवलपर को समाधान बनाने के लिए मजबूर होना पड़ता था. Chrome 87 से, किसी सेवा वर्कर के अंदर से नेटवर्क पर रेंज के अनुरोध भेजने पर, वे "काम कर जाएंगे."
self.addEventListener('fetch', (event) => {
// The Range: header will pass through
// in browsers that behave correctly.
event.respondWith(fetch(event.request));
});
रेंज रिक्वेस्ट से जुड़ी समस्याओं और Chrome 87 में हुए बदलावों के बारे में जानने के लिए, web.dev पर जेफ़ का लेख सेवा वर्कर में रेंज रिक्वेस्ट मैनेज करना पढ़ें.
Origin Trial: Font access API
Figma, Gravit Designer, और Photopea जैसे डिज़ाइन ऐप्लिकेशन को वेब पर उपलब्ध कराना बहुत अच्छा है. साथ ही, हमें आने वाले समय में और भी कई ऐप्लिकेशन वेब पर उपलब्ध कराने हैं. वेब पर कई तरह के फ़ॉन्ट उपलब्ध होते हैं, लेकिन वे सभी वेब पर उपलब्ध नहीं होते.
कई डिज़ाइनर के कंप्यूटर पर कुछ फ़ॉन्ट इंस्टॉल होते हैं, जो उनके काम के लिए ज़रूरी होते हैं. उदाहरण के लिए, कॉर्पोरेट लोगो के फ़ॉन्ट या CAD और अन्य डिज़ाइन ऐप्लिकेशन के लिए विशेष फ़ॉन्ट.
फ़ॉन्ट ऐक्सेस एपीआई की मदद से, अब साइट पर इंस्टॉल किए गए फ़ॉन्ट की जानकारी दी जा सकती है. इससे, उपयोगकर्ताओं को अपने सिस्टम पर मौजूद सभी फ़ॉन्ट का ऐक्सेस मिल जाता है. यह एपीआई, Chrome 87 में ऑरिजिन ट्रायल के तौर पर शुरू किया गया है.
// Query for all available fonts and log metadata.
const fonts = navigator.fonts.query();
try {
for await (const metadata of fonts) {
console.log(`${metadata.family} (${metadata.fullName})`);
}
} catch (err) {
console.error(err);
}
// Roboto (Roboto Black)
// Roboto (Roboto Black Italic)
// Roboto (Roboto Bold)
साथ ही, साइटें फ़ॉन्ट बाइट का ऐक्सेस पाने के लिए, कम लेवल पर भी जुड़ सकती हैं. इससे वे अपने OpenType लेआउट को लागू कर सकती हैं या ग्लिफ़ आकार पर वेक्टर फ़िल्टर या ट्रांसफ़ॉर्म कर सकती हैं.
const fonts = navigator.fonts.query();
try {
for await (const metadata of fonts) {
const sfnt = await metadata.blob();
makeMagic(metadata.family, sfnt);
}
} catch (err) {
console.error(err);
}
ज़्यादा जानकारी के लिए, Tom का लेख स्थानीय फ़ॉन्ट के साथ बेहतर टाइपोग्राफ़ी का इस्तेमाल करना पढ़ें. यह लेख, web.dev पर उपलब्ध है. साथ ही, इसमें Origin Trial का लिंक भी दिया गया है, ताकि आप इसे खुद आज़मा सकें.
अन्य डेटा
- ट्रांसफ़र की जा सकने वाली स्ट्रीम -
ReadableStream
,WritableStream
, औरTransformStream
ऑब्जेक्ट को अबpostMessage()
के लिए आर्ग्युमेंट के तौर पर पास किया जा सकता है. - हमने सीएसएस लॉजिकल प्रॉपर्टी और वैल्यू के स्पेसिफ़िकेशन की सबसे बेहतर
flow-relative
सुविधाओं को लागू किया है. इनमें शॉर्टहैंड और ऑफ़सेट भी शामिल हैं, ताकि इन लॉजिकल प्रॉपर्टी और वैल्यू को लिखना थोड़ा आसान हो सके. उदाहरण के लिए, एकmargin-block
प्रॉपर्टी, अलग-अलगmargin-block-start
औरmargin-block-end
नियमों की जगह ले सकती है. - फ़ॉन्ट की मेट्रिक बदलने के लिए,
ascent-override
,descent-override
, औरline-gap-override
में नए@font-face
डिस्क्रिप्टर जोड़े गए हैं. - इसमें कई नई
text-decoration
औरunderline
प्रॉपर्टी हैं. - साथ ही, क्रॉस-ऑरिजिन आइसोलेशन से जुड़े कई बदलाव भी किए गए हैं.
इसके बारे में और पढ़ें
इसमें सिर्फ़ कुछ खास हाइलाइट शामिल हैं. Chrome 87 में हुए अतिरिक्त बदलावों के बारे में जानने के लिए, नीचे दिया गया लिंक देखें.
- Chrome DevTools (87) में नया क्या है
- Chrome 87 का इस्तेमाल बंद करना और हटाना
- Chrome 87 के लिए, ChromeStatus.com से जुड़े अपडेट
- Chrome 87 में JavaScript में नया क्या है
- Chromium सोर्स रिपॉज़िटरी में हुए बदलावों की सूची
सदस्यता लें
अगर आपको हमारे वीडियो के बारे में अप-टू-डेट रहना है, तो Chrome Developers के YouTube चैनल की सदस्यता लें. ऐसा करने पर, जब भी हम कोई नया वीडियो लॉन्च करेंगे, आपको ईमेल से सूचना मिलेगी.
मेरा नाम पीट लेपेज है. Chrome 88 रिलीज़ होने के बाद, मैं आपको बताऊंगा कि Chrome में नया क्या है!