ऑडियो डिवाइसों के लिए Google Cast की सुविधा, सिर्फ़ ऑडियो चलाने के लिए उपलब्ध है. इस गाइड में, सिर्फ़ ऑडियो वाले डिवाइसों के लिए Cast ऐप्लिकेशन को ऑप्टिमाइज़ करने का तरीका बताया गया है. साथ ही, मेमोरी, सीपीयू, और नेटवर्क बैंडविड्थ के इस्तेमाल में कमी के फ़ायदे पाने का तरीका भी बताया गया है.
ऑडियो के लिए Google Cast की सुविधा का इस्तेमाल करने वाले ऐप्लिकेशन को इन बातों का ध्यान रखना होगा:
- ऑडियो डिवाइसों के लिए Google Cast, वीडियो या ग्राफ़िक नहीं दिखाता. हालांकि, कई ऑडियो डिवाइसों में मेटाडेटा दिखाने के लिए डिसप्ले होता है. जैसे, मेटाडेटा में, वीडियो चलाने की स्थिति (चल रहा है या रोका गया है) और वीडियो की प्रोग्रेस की जानकारी होती है. आपका ऐप्लिकेशन, उपयोगकर्ता की ऐसी अहम जानकारी सिर्फ़ पाने वाले व्यक्ति को नहीं दिखाना चाहिए. अहम जानकारी और ज़्यादातर यूज़र इंटरफ़ेस, भेजने वाले व्यक्ति को दिखाया जाना चाहिए.
- वेब रिसीवर ऐप्लिकेशन को सही तरीके से चलाने के लिए, ऑडियो डिवाइसों के लिए Google Cast को अब भी ग्राफ़िक रेंडर करने होंगे, भले ही वे डिसप्ले न हों. ऐसा हो सकता है कि डिवाइस, हार्डवेयर की मदद से तेज़ी से किए जाने वाले ग्राफ़िक्स ऑपरेशन के साथ काम न करें. इसलिए, रिसीवर ऐप्लिकेशन को ग्राफ़िक्स पर ज़्यादा काम करने वाले ऑपरेशन का इस्तेमाल नहीं करना चाहिए. जैसे, कलर ग्रेडिएंट, रोटेशन, अल्फा ब्लेंडिंग, और प्रोग्रेस बार जैसे बड़े ऑब्जेक्ट को हर सेकंड में एक से ज़्यादा बार फिर से ड्रॉ करना.
- ऑडियो डिवाइसों के लिए Google Cast, सिर्फ़ डिजिटल राइट मैनेजमेंट (डीआरएम) से सुरक्षित कॉन्टेंट के लिए Widevine के साथ काम करता है.
- 'ऑडियो के लिए Google Cast' की सुविधा वाले ज़्यादातर डिवाइसों के लिए, भेजने वाला ऐप्लिकेशन डिवाइस (उदाहरण के लिए, स्पीकर) की पूरी वॉल्यूम रेंज को कंट्रोल करता है. यह Chromecast डिवाइस की तरह, टीवी पर ऑडियो सोर्स इनपुट के वॉल्यूम को कंट्रोल नहीं करता.
- ऐप्लिकेशन में, डिवाइस से वीडियो चलाने की सुविधा के साथ-साथ, डिवाइस के कंट्रोलर से भी वीडियो चलाने की सुविधा होनी चाहिए. जैसे, रिमोट कंट्रोल, डिवाइस पर मौजूद बटन या बाहरी रिमोट ऐप्लिकेशन.
- ऑडियो डिवाइस के लिए Google Cast, कॉन्टेंट का मेटाडेटा दिखाने की सुविधा दे सकता है. यह सुविधा, डिवाइस के यूज़र इंटरफ़ेस (यूआई) के आधार पर, छोटी एलसीडी स्क्रीन, एचडीएमआई आउटपुट (साउंडबार या ऑडियो-वीडियो रिसीवर के लिए) या किसी बाहरी रिमोट ऐप्लिकेशन के साथ काम कर सकती है.
डेवलेपमेंट
ऑडियो के लिए Google Cast की सुविधा के साथ काम करने वाला Cast ऐप्लिकेशन बनाने के लिए, सबसे पहले ऑडियो-वीडियो के लिए Cast ऐप्लिकेशन बनाएं. साथ ही, पक्का करें कि वह Chromecast पर काम करता हो. इस दस्तावेज़ में यह माना गया है कि आपने ऐसा ऐप्लिकेशन डेवलप किया है और उसकी जांच की है.
कोई ऐप्लिकेशन, ऑडियो-वीडियो और सिर्फ़ ऑडियो वाले डिवाइसों, दोनों पर काम कर सकता है. यह जानना ज़रूरी है कि वीडियो को किस डिवाइस पर कास्ट किया जा रहा है. साथ ही, यह भी ज़रूरी है कि इस स्थिति में उपयोगकर्ता को बेहतर अनुभव मिले.
उदाहरण के लिए, ऑडियो और वीडियो, दोनों के लिए काम करने वाले ऐप्लिकेशन (जैसे कि लोकल/NAS फ़ाइल चलाने वाले ऐप्लिकेशन) को ऑडियो फ़ाइलें चलाने के लिए, सिर्फ़ ऑडियो वाले डिवाइसों पर कास्ट करने की सुविधा चालू करनी चाहिए. हालांकि, ऐप्लिकेशन को उपयोगकर्ता को सिर्फ़ ऑडियो वाले डिवाइस पर वीडियो फ़ाइलें भेजने की अनुमति नहीं देनी चाहिए. डिवाइस के लिए सही कॉन्टेंट तय करने के लिए, ऐप्लिकेशन यहां बताए गए डिवाइस की क्षमताओं के एपीआई का इस्तेमाल कर सकता है.
ऑडियो के लिए Google Cast की सुविधा इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को ये काम करने होंगे:
सिर्फ़ ऑडियो के साथ काम करना चाहिए: संगीत और ऑडियो फ़ाइलें, रेडियो वगैरह स्ट्रीम करना. वेब रिसीवर ऐप्लिकेशन पर स्ट्रीम किया जाने वाला मीडिया, वीडियो स्ट्रीम नहीं होना चाहिए. साथ ही, ऐप्लिकेशन के लॉन्च होने में लगने वाले समय और मेमोरी के इस्तेमाल को बेहतर बनाने के लिए, ग्राफ़िक और इमेज स्ट्रीम करने से बचें. मेमोरी के इस्तेमाल से जुड़े दिशा-निर्देश यहां देखें.
यह सुविधा, 'ऑडियो के लिए कास्ट' डिवाइस के साथ-साथ सामान्य Chromecast पर भी उम्मीद के मुताबिक काम करती है.
डिवाइस की सुविधाएं
आपका ऐप्लिकेशन, डिवाइस की सुविधाओं के एपीआई की मदद से यह पता लगा सकता है कि वह सिर्फ़ ऑडियो वाले डिवाइस पर चल रहा है या नहीं. ये एपीआई, डिवाइस पर या भेजने वाले या पाने वाले एपीआई के ज़रिए उपलब्ध होते हैं.
डिवाइस का एचटीटीपी हेडर
ऐप्लिकेशन लॉन्च के दौरान, Cast डिवाइस से मिले CAST-DEVICE-CAPABILITIES
एचटीटीपी हेडर से, डिवाइस की क्षमताओं के बारे में पता चलता है. डिवाइस, इस हेडर के साथ वेब रिसीवर ऐप्लिकेशन को होस्ट करने वाले सर्वर को अनुरोध भेजता है. सिर्फ़ ऑडियो वाले डिवाइस के हेडर में, CAST-DEVICE-CAPABILITIES: {"display_supported":false}
के साथ डिवाइस की सुविधाओं के बारे में बताया जाता है.
जब आपके सर्वर को डिवाइस से अनुरोध मिलता है, तो इस हेडर में मौजूद जानकारी का इस्तेमाल करके, अनुरोध को वेब रिसीवर ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है. यह ऐप्लिकेशन, ऑडियो डिवाइसों के लिए ऑप्टिमाइज़ किया गया है.
Web Receiver API
वेब रिसीवर ऐप्लिकेशन लोड होने पर, CastReceiverManager.getDeviceCapabilities()
को कॉल करके, डिवाइस की सुविधाओं का वही ऑब्जेक्ट पाया जा सकता है.
ज़्यादा जानकारी के लिए, डिवाइस की सुविधाएं देखें.
Sender APIs
Cast sender API में, डिवाइस की सुविधाओं की जानकारी भी होती है. इनकी मदद से, ईमेल भेजने वाले ऐप्लिकेशन यह तय कर पाते हैं कि ईमेल पाने वाले को किस तरह का मीडिया भेजना है. अगर आपका ऐप्लिकेशन ऑडियो और वीडियो, दोनों के साथ काम करता है, तो वह सिर्फ़ ऑडियो वाले डिवाइसों पर वीडियो कॉन्टेंट भेजने से बच सकता है. साथ ही, आपका ऐप्लिकेशन डिवाइस के लिए सबसे सही तरीके का इस्तेमाल करके, आवाज़ को कंट्रोल कर सकता है. इस बारे में डिज़ाइन चेकलिस्ट में बताया गया है. ईमेल भेजने वालों के लिए, डिवाइस की सुविधाओं वाले ये एपीआई देखें:
- Android: CastDevice.hasCapabilities
- iOS: deviceCapabilities
- Chrome: chrome.cast.Capability
मेमोरी के इस्तेमाल से जुड़े दिशा-निर्देश
ऑडियो डिवाइसों पर चलने वाले वेब रिसीवर ऐप्लिकेशन को मेमोरी के इस्तेमाल को इस तरह मैनेज करना होगा:
- मेमोरी फ़ुटप्रिंट को कम करने और वीडियो चलने में लगने वाले समय को कम करने के लिए, किसी भी इमेज या ग्राफ़िक ऐसेट को डाउनलोड या इस्तेमाल करने से बचें.
- मीडिया सोर्स एक्सटेंशन (एमएसई) का इस्तेमाल करते समय, ऐप्लिकेशन को स्ट्रीम बफ़र को 2 एमबी तक सीमित रखना होगा. अगर मीडिया प्लेयर लाइब्रेरी (एमपीएल) का इस्तेमाल किया जा रहा है, तो ऐप्लिकेशन के स्ट्रीम बफ़र का साइज़, एमपीएल से पहले से तय होता है.
- HTMLMediaElement का इस्तेमाल करने पर, Chrome, स्ट्रीम रेट के आधार पर ऐप्लिकेशन के स्ट्रीम बफ़र का साइज़ तय करता है. ऑडियो बिटरेट को 2 एमबीपीएस तक सीमित करें. यह काम करने वाले मीडिया में बताए गए सभी कोडेक के साथ काम करता है. यह बिटरेट, 48 केएचज़/16 बिट तक का हो सकता है.
आवाज़ कंट्रोल करें
'ऑडियो के लिए Google Cast' की सुविधा वाले ज़्यादातर डिवाइसों के लिए, डिवाइस पर मौजूद ऐप्लिकेशन, डिवाइस की पूरी वॉल्यूम रेंज को कंट्रोल करता है. यह Chromecast डिवाइस की तरह, सिर्फ़ ऑडियो सोर्स के इनपुट वॉल्यूम को कंट्रोल नहीं करता. इसका मतलब है कि सिर्फ़ ऑडियो वाले ऐप्लिकेशन के लिए, वॉल्यूम में होने वाले बदलाव की दर कम होनी चाहिए. अपने ऐप्लिकेशन में आवाज़ कंट्रोल की सुविधा देने के दिशा-निर्देशों के लिए, ये दस्तावेज़ देखें:
- डिज़ाइन की चेकलिस्ट में, भेजने वाले के पास वॉल्यूम कंट्रोल करने की सुविधा
- Android डिवाइस से भेजे गए मैसेज का वॉल्यूम
- iOS डिवाइस से भेजे गए ईमेल की संख्या
- वेब से ईमेल भेजने वाले लोगों की संख्या
डिवाइस कंट्रोल
ऑडियो डिवाइसों के लिए Google Cast में, प्लेबैक कंट्रोल (जैसे कि बटन, रिमोट) हो सकते हैं. ये urn:x-cast:com.google.cast.media
नेमस्पेस के लिए तय किए गए मीडिया प्लेबैक मैसेज का इस्तेमाल करते हैं. इन मैसेज के बारे में मीडिया प्लेबैक मैसेज में बताया गया है. इनका इस्तेमाल, रिसीवर ऐप्लिकेशन पर मीडिया चलाने की सुविधा को कंट्रोल करने के लिए किया जाता है. डिवाइस के प्लेबैक कंट्रोल के साथ काम करने के लिए, आपके रिसीवर ऐप्लिकेशन में मीडिया प्लेबैक के इन मैसेज का इस्तेमाल किया जाना चाहिए.
साथ ही, आपके ऐप्लिकेशन में रिसीवर से भेजने वाले को मैसेज भेजने की सुविधा भी होनी चाहिए. इससे, अगर उपयोगकर्ता डिवाइस के कंट्रोल से मीडिया की स्थिति बदलता है, तो आपके ऐप्लिकेशन को रिसीवर से स्टेटस मैसेज मिल सकता है और उसी हिसाब से यूज़र इंटरफ़ेस (यूआई) अपडेट किया जा सकता है.
डिवाइस का डिसप्ले
ऑडियो डिवाइस के लिए Google Cast की सुविधा वाले डिवाइस में, एक एलसीडी स्क्रीन या डिवाइस के हिसाब से कंट्रोल करने वाला ऐप्लिकेशन हो सकता है. यह ऐप्लिकेशन, मीडिया का मेटाडेटा दिखाता है. आपके रिसीवर ऐप्लिकेशन को सभी ऑडियो ट्रैक के लिए यह मेटाडेटा देना होगा. साथ ही, यह पक्का करना होगा कि यह मेटाडेटा, फ़िलहाल चल रहे कॉन्टेंट के साथ सिंक हो, ताकि मेटाडेटा डिसप्ले पर सही तरीके से दिखे. अगर ऐप्लिकेशन में कस्टम मेटाडेटा का इस्तेमाल किया जा रहा है, तो उसे ऑडियो का स्टैंडर्ड मेटाडेटा भी देना होगा. जैसे, ट्रैक का नाम, कलाकार का नाम, एल्बम का टाइटल वगैरह. यहां हर प्लैटफ़ॉर्म के लिए मेटाडेटा के बारे में बताया गया है.
मीडिया लोड करने पर, पाने वाले को भेजने वाले से मेटाडेटा मिलता है. मीडिया को रिसीवर पर लोड करने के लिए, आपको अपने ऐप्लिकेशन में यहां दिए गए फ़ील्ड की जानकारी देनी होगी. इससे, ऑडियो डिवाइस के लिए Google Cast पर मेटाडेटा दिखेगा. इन एपीआई का इस्तेमाल करें:
Android
MediaMetadata
MEDIA_TYPE_MUSIC_TRACK
के साथ और:iOS
GCKMediaMetadata
GCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
और:Chrome
MediaInfo
के साथMusicTrackMediaMetadata
और:
अगर Cast ऐप्लिकेशन, रिसीवर या क्लाउड पर मीडिया सूची को मैनेज करता है, तो वेब रिसीवर को urn:x-cast:com.google.cast.media
नेमस्पेस का इस्तेमाल करके, मीडिया की स्थिति से जुड़े अपडेट ब्रॉडकास्ट करने होंगे, ताकि मीडिया भेजने वाले सभी लोग सिंक हो सकें.
रजिस्ट्रेशन
आपको जांच के लिए, Google Cast for audio डिवाइस को रजिस्टर करना होगा. साथ ही, Google Cast SDK डेवलपर कंसोल का इस्तेमाल करके, अपने ऐप्लिकेशन को Google Cast for audio डिवाइसों के साथ काम करने के लिए रजिस्टर करना होगा.
- डिवाइसों को रजिस्टर करने के बारे में ज़्यादा जानकारी के लिए, डिवाइस देखें.
- अपने ऐप्लिकेशन को ऑडियो डिवाइसों के लिए Google Cast की सुविधा का पता लगाने की अनुमति देने के लिए, ऐप्लिकेशन रजिस्टर करते समय आपको सिर्फ़ ऑडियो वाले डिवाइसों पर कास्ट करने की सुविधा उपलब्ध है चेकबॉक्स को चुनना होगा. अपना ऐप्लिकेशन रजिस्टर करना देखें.
पब्लिश नहीं किए गए ऐप्लिकेशन के लिए, आपको सिर्फ़ ऑडियो स्ट्रीम करने वाले डिवाइसों के साथ काम करने का विकल्प भी चुनना होगा. ऐसा इसलिए, ताकि ऐप्लिकेशन सिर्फ़ ऑडियो स्ट्रीम करने वाले डिवाइसों को ढूंढ सके. जैसे, टेस्टिंग के लिए इस्तेमाल किए जाने वाले ऐप्लिकेशन.
Google Cast for Audio 2.0
Google Cast for Audio (GC4A) 2.0, अगली पीढ़ी का Cast ऑडियो प्लैटफ़ॉर्म है. इसे कम मेमोरी वाले डिवाइसों को ध्यान में रखकर डिज़ाइन किया गया है. इससे, आपके कॉन्टेंट को स्ट्रीम करने वाले डिवाइसों के नेटवर्क का दायरा बढ़ेगा. GC4A 2.0, ऑडियो प्लैटफ़ॉर्म को टारगेट करता है. इसलिए, वेब एपीआई के सेट को डिसप्ले के बिना काम करने वाले डिवाइसों के साथ अलाइन करने के लिए छोटा किया गया है. GC4A 2.0, कास्ट की सुविधा वाले नए और मौजूदा स्पीकर के लिए लॉन्च किया जा रहा है.
जांच करना और डीबग करना
Google Assistant की सुविधा वाले सभी स्पीकर, GC4A 2.0 पर ट्रांज़िशन करेंगे. इसलिए, ऑडियो ऐप्लिकेशन के डेवलपर को अपने ऐप्लिकेशन को GC4A 2.0 पर टेस्ट करना ज़रूरी है. यहां दिए गए GC4A 2.0 वाले किसी भी डिवाइस पर, GC4A 2.0 के लिए बनाए गए अपने Cast ऐप्लिकेशन की जांच की जा सकती है.
GC4A 2.0 में, Chrome रिमोट डीबगर की सुविधा काम नहीं करती. अगर आपको अपने ऐप्लिकेशन को डीबग करना है, तो Google का सुझाव है कि आप Cast Debug Logger का इस्तेमाल करें.
GC4A 2.0 वाले उपलब्ध डिवाइस
यह GC4A 2.0 डिवाइसों की पूरी सूची नहीं है:
- Bose: वाई-फ़ाई स्पीकर और स्मार्ट साउंडबार
- JBL: Charge 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200, 300, और 500
- Samsung: Music Frame / साउंडबार
- LG: साउंडबार S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- Cambridge Audio MXN10
- KEF LS60 / LSX II
- Teufel Motiv Home
- Nordic Argon Audio
- WiiM CI MOD S / Ultra
सुझाए गए बुनियादी टेस्ट केस
हमारा सुझाव है कि आप GC4A 2.0 पर ऐप्लिकेशन की सभी सुविधाओं की जांच करें. पक्का करें कि आपने सभी तरह के मीडिया (पॉडकास्ट, स्ट्रीम वगैरह) को चलाने, रोकने, स्क्रेब करने, छोड़ने, प्लेलिस्ट बदलने, रोकने, और Cast को फिर से कनेक्ट करने की जांच की हो.
काम करने वाले एपीआई
GC4A 2.0 इन एपीआई के साथ काम करता है:
- एचटीएमएल
- JavaScript ECMA 6
- DOMParser
- XMLSerializer
- दस्तावेज़ और सबक्लास
- DocumentFragment
- HTMLMediaElement और HTMLAudioElement
- HTMLVideoElement (सिर्फ़ ऑडियो कॉन्टेंट चला सकता है)
- HTMLScriptElement
- HTMLBaseElement
- HTMLTemplateElement
- कस्टम एलिमेंट
- शैडो डीओएम
- स्क्रिप्ट मॉड्यूल / एक साथ काम नहीं करने वाली प्रोसेस / देर से लागू होने वाली प्रोसेस
- फ़ेच / एक्सएचआर
- WebSocket
- MessagePort
- कुकी
- एमएसई (मीडिया सोर्स एक्सटेंशन)
- EME (एन्क्रिप्ट किए गए मीडिया एक्सटेंशन)
- लोकल / सेशन स्टोरेज
GC4A 2.0 में ये सुविधाएं उपलब्ध नहीं हैं:
- डाइनैमिक मॉड्यूल इंपोर्ट (साल 2024 में जोड़ा जाएगा)
- सीएसएस
- IFrame
- TextTracks
पहचान करना
Cast Receiver ऐप्लिकेशन, सभी कास्ट डिवाइसों के लिए एक जैसे होते हैं. हालांकि, कभी-कभी यह जानना मददगार हो सकता है कि आपने इसे किस डिवाइस पर चलाया है. GC4A 2.0 डिवाइसों की पहचान, उपयोगकर्ता एजेंट स्ट्रिंग का इस्तेमाल करके की जा सकती है.
- सभी Cast डिवाइसों में
CrKey/
और एक वर्शन होता है. उदाहरण:CrKey/1.68.000001
. - GC4A 2.0 डिवाइसों में
Castlite/
और एक वर्शन होता है. उदाहरण:Castlite/1.0
.
संपर्क
अगर आपको जांच के लिए सेट अप करने में मदद चाहिए या Bose स्पीकर का इस्तेमाल करने में समस्या आ रही है, तो कृपया gc4a-support-external@google.com पर संपर्क करें.