Web Receiver SDK, प्लेयर के लिए पहले से मौजूद यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. इस यूज़र इंटरफ़ेस (यूआई) को अपने कस्टम Web Receiver ऐप्लिकेशन में लागू करने के लिए, आपको अपनी एचटीएमएल फ़ाइल के बॉडी में cast-media-player एलिमेंट जोड़ना होगा.
<body>
<cast-media-player></cast-media-player>
</body>
सीएसएस वैरिएबल की मदद से, cast-media-player की अलग-अलग प्रॉपर्टी को पसंद के मुताबिक बनाया जा सकता है. इनमें प्लेयर का बैकग्राउंड, स्प्लैश इमेज, फ़ॉन्ट फ़ैमिली वगैरह शामिल हैं. इन वैरिएबल को इन-लाइन सीएसएस स्टाइल, सीएसएस स्टाइलशीट या JavaScript में style.setProperty की मदद से जोड़ा जा सकता है.
अगले सेक्शन में, मीडिया प्लेयर एलिमेंट के हर हिस्से को पसंद के मुताबिक बनाने का तरीका जानें. शुरुआत करने के लिए, इन टेंप्लेट का इस्तेमाल किया जा सकता है.
index.html
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="css/receiver.css" media="screen" /> <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"> </script> </head> <body> <cast-media-player></cast-media-player> </body> <footer> <script src="js/receiver.js"></script> </footer> </html>
js/receiver.js
const context = cast.framework.CastReceiverContext.getInstance(); ... // Update style using javascript let playerElement = document.getElementsByTagName("cast-media-player")[0]; playerElement.style.setProperty('--splash-image', 'url("http://some/other/image.png")'); ... context.start();
css/receiver.css
body { --playback-logo-image: url('http://some/image.png'); } cast-media-player { --theme-hue: 100; --progress-color: rgb(0, 255, 0); --splash-image: url('http://some/image.png'); --splash-size: cover; }
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<style>
body {
--playback-logo-image: url('http://some/image.png');
}
cast-media-player {
--theme-hue: 100;
--progress-color: rgb(0, 255, 0);
--splash-image: url('http://some/image.png');
}
</style>
<script>
const context = cast.framework.CastReceiverContext.getInstance();
...
// Update style using javascript
let playerElement = document.getElementsByTagName("cast-media-player")[0];
playerElement.style.setProperty('--splash-image', 'url("http://some/other/image.png")');
...
context.start();
</script>
</body>
</html>प्लेबैक लोगो
मीडिया चलाने के दौरान, प्लेबैक लोगो आपके रिसीवर के सबसे ऊपर बाएं कोने में दिखता है. यह प्रॉपर्टी, .logo क्लास से अलग होती है. body सिलेक्टर से --playback-logo-image को पसंद के मुताबिक बनाया जा सकता है.
body {
--playback-logo-image: url('image.png'); /* set from the body selector */
}
प्लेयर के बैकग्राउंड की प्रॉपर्टी
--background वैरिएबल, पूरे प्लेयर के बैकग्राउंड की प्रॉपर्टी सेट करते हैं. ये प्रॉपर्टी, प्लेयर लॉन्च होने और मीडिया चलाने के दौरान दिखती हैं. उदाहरण के लिए, पूरे बैकग्राउंड को सफ़ेद और सिल्वर रंग का लीनियर ग्रेडिएंट सेट किया जा सकता है:
cast-media-player {
--background-image: linear-gradient(white, silver);
}
Web Receiver का डिसप्ले:

.background की प्रॉपर्टी को पसंद के मुताबिक बनाने के लिए, इन वैरिएबल का इस्तेमाल किया जा सकता है:
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --background | काला | सीएसएस बैकग्राउंड प्रॉपर्टी |
| --background-color | सीएसएस background-color प्रॉपर्टी | |
| --background-image | सीएसएस background-image प्रॉपर्टी | |
| --background-repeat | no-repeat | सीएसएस background-repeat प्रॉपर्टी |
| --background-size | कवर | सीएसएस background-size प्रॉपर्टी |
सीएसएस टेंप्लेट
cast-media-player {
--background:
--background-color:
--background-image:
--background-repeat:
--background-size:
}
लोगो की प्रॉपर्टी
.logo क्लास को .background क्लास के सामने रखा जाता है. यह पूरे प्लेयर पर फैली होती है
. यह क्लास, आपका रिसीवर लॉन्च होने पर दिखती है. अगर .splash के लिए कोई वैरिएबल नहीं दिया जाता है, तो .logo क्लास तब भी दिखती है, जब आपका रिसीवर इस्तेमाल में न हो.
यहां दिए गए उदाहरण में, --logo-image को welcome.png नाम के इक्वलाइज़र आइकॉन पर सेट किया गया है. डिफ़ॉल्ट रूप से, कोई इमेज आपके रिसीवर के बीच में दिखती है:
cast-media-player {
--logo-image: url('welcome.png');
}
Web Receiver का डिसप्ले:

.logo की प्रॉपर्टी को पसंद के मुताबिक बनाने के लिए, इन वैरिएबल का इस्तेमाल किया जा सकता है:
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --logo-background | सीएसएस बैकग्राउंड प्रॉपर्टी | |
| --logo-color | सीएसएस background-color प्रॉपर्टी | |
| --logo-image | सीएसएस background-image प्रॉपर्टी | |
| --logo-repeat | no-repeat | सीएसएस background-repeat प्रॉपर्टी |
| --logo-size | सीएसएस background-size प्रॉपर्टी |
सीएसएस टेंप्लेट
cast-media-player {
--logo-background:
--logo-color:
--logo-image:
--logo-repeat:
--logo-size:
}
स्प्लैश की प्रॉपर्टी
.logo क्लास की तरह, .splash क्लास भी पूरे प्लेयर पर फैली होती है. अगर ये प्रॉपर्टी सेट की जाती हैं, तो आपका रिसीवर इस्तेमाल में न होने पर, .splash के वैरिएबल, .logo के वैरिएबल को बदल देंगे. इसका मतलब है कि लॉन्च के समय .logo की प्रॉपर्टी का एक सेट इस्तेमाल किया जा सकता है. साथ ही, जब आपका रिसीवर इस्तेमाल में न हो, तब अलग-अलग बैकग्राउंड या इमेज दिखाई जा सकती हैं.
उदाहरण के लिए, सफ़ेद और सिल्वर ग्रेडिएंट वाले बैकग्राउंड को dimgray से बदला जा सकता है. साथ ही, waiting... का ऐनिमेटेड आइकॉन जोड़ा जा सकता है:
cast-media-player {
--splash-color: dimgray;
--splash-image: url('waiting.png');
}
Web Receiver का डिसप्ले:

अगर ये प्रॉपर्टी सेट नहीं की जाती हैं, तो आपका रिसीवर इस्तेमाल में न होने पर, .logo की सेटिंग या ऐप्लिकेशन के नाम पर सेट हो जाता है.
.splash की प्रॉपर्टी को पसंद के मुताबिक बनाने के लिए, इन वैरिएबल का इस्तेमाल किया जा सकता है:
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --splash-background | सीएसएस बैकग्राउंड प्रॉपर्टी | |
| --splash-color | सीएसएस background-color प्रॉपर्टी | |
| --splash-image | सीएसएस background-image प्रॉपर्टी | |
| --splash-repeat | सीएसएस background-repeat प्रॉपर्टी | |
| --splash-size | सीएसएस background-size प्रॉपर्टी |
सीएसएस टेंप्लेट
cast-media-player {
--splash-background:
--splash-color:
--splash-image:
--splash-repeat:
--splash-size:
}
स्लाइड शो
अगर आपको स्प्लैश इमेज की जगह, इस्तेमाल में न होने पर 10 इमेज तक का स्लाइड शो दिखाना है, तो स्लाइड शो के इन पैरामीटर का इस्तेमाल करें.
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --slideshow-interval-duration | 10 सेकंड | इमेज के बीच का समय. |
| --slideshow-animation-duration | 2 सेकंड | ट्रांज़िशन की अवधि. |
| --slideshow-image-1 | स्लाइड शो में पहली इमेज. | |
| --slideshow-image-2 | स्लाइड शो में दूसरी इमेज. | |
| --slideshow-image-3 | स्लाइड शो में तीसरी इमेज. | |
| --slideshow-image-4 | स्लाइड शो में चौथी इमेज. | |
| --slideshow-image-5 | स्लाइड शो में पांचवीं इमेज. | |
| --slideshow-image-6 | स्लाइड शो में छठी इमेज. | |
| --slideshow-image-7 | स्लाइड शो में सातवीं इमेज. | |
| --slideshow-image-8 | स्लाइड शो में आठवीं इमेज. | |
| --slideshow-image-9 | स्लाइड शो में नौवीं इमेज. | |
| --slideshow-image-10 | स्लाइड शो में दसवीं इमेज. |
सीएसएस टेंप्लेट
cast-media-player {
--slideshow-interval-duration:
--slideshow-animation-duration:
--slideshow-image-1:
--slideshow-image-2:
--slideshow-image-3:
--slideshow-image-4:
--slideshow-image-5:
--slideshow-image-6:
--slideshow-image-7:
--slideshow-image-8:
--slideshow-image-9:
--slideshow-image-10:
}
वॉटरमार्क की प्रॉपर्टी
मीडिया चलाने के दौरान, .watermark दिखता है. आम तौर पर, यह एक छोटी और पारदर्शी इमेज होती है. यह डिफ़ॉल्ट रूप से, आपके रिसीवर के सबसे नीचे दाएं कोने में दिखती है.
.watermark की प्रॉपर्टी को पसंद के मुताबिक बनाने के लिए, इन वैरिएबल का इस्तेमाल किया जा सकता है:
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --watermark-background | सीएसएस बैकग्राउंड प्रॉपर्टी | |
| --watermark-color | सीएसएस background-color प्रॉपर्टी | |
| --watermark-image | सीएसएस background-image प्रॉपर्टी | |
| --watermark-position | नीचे दाईं ओर | सीएसएस background-position प्रॉपर्टी |
| --watermark-repeat | no-repeat | सीएसएस background-repeat प्रॉपर्टी |
| --watermark-size | सीएसएस background-size प्रॉपर्टी |
सीएसएस टेंप्लेट
cast-media-player {
--watermark-background:
--watermark-color:
--watermark-image:
--watermark-position:
--watermark-repeat:
--watermark-size:
}
प्लेबैक, विज्ञापन, और सीएसएस की अन्य प्रॉपर्टी
cast-media-player सिलेक्टर से, विज्ञापनों, फ़ॉन्ट, प्लेयर की इमेज, और अन्य प्रॉपर्टी को भी पसंद के मुताबिक बनाया जा सकता है.
वैरिएबल और डिफ़ॉल्ट वैल्यू
| नाम | डिफ़ॉल्ट वैल्यू | ब्यौरा |
|---|---|---|
| --ad-title | विज्ञापन | विज्ञापन का टाइटल. |
| --skip-ad-title | विज्ञापन अभी नहीं | विज्ञापन अभी नहीं टेक्स्ट बॉक्स का टेक्स्ट. |
| --break-color | hsl(hue, 100%, 50%) | विज्ञापन ब्रेक मार्क का रंग. |
| --font-family | Open Sans | मेटाडेटा और प्रोग्रेस बार के लिए फ़ॉन्ट फ़ैमिली. |
| --spinner-image | डिफ़ॉल्ट इमेज | लॉन्च के दौरान दिखने वाली इमेज. |
| --buffering-image | डिफ़ॉल्ट इमेज | बफ़रिंग के दौरान दिखने वाली इमेज. |
| --pause-image | डिफ़ॉल्ट इमेज | पॉज़ होने के दौरान दिखने वाली इमेज. |
| --play-image | मीडिया चलाने के दौरान, मेटाडेटा में दिखने वाली इमेज. | |
| --theme-hue | 42 | प्लेयर के लिए इस्तेमाल किया जाने वाला ह्यू. |
| --progress-color | hsl(hue, 95%, 60%) | प्रोग्रेस बार का रंग. |
सीएसएस टेंप्लेट
cast-media-player {
--ad-title:
--skip-ad-title:
--break-color:
--font-family:
--spinner-image:
--buffering-image:
--pause-image:
--play-image:
--theme-hue:
--progress-color:
}
ज़्यादा जानकारी और अन्य उदाहरणों के लिए, स्टाइल वाला मीडिया रिसीवर देखें.
ओवरस्कैन
टीवी के लिए लेआउट की कुछ खास ज़रूरतें होती हैं. ऐसा टीवी के स्टैंडर्ड में हुए बदलावों और दर्शकों को हमेशा पूरी स्क्रीन पर इमेज दिखाने की वजह से होता है. टीवी डिवाइस, पूरे डिसप्ले को भरने के लिए, ऐप्लिकेशन के लेआउट के बाहरी किनारे को क्लिप कर सकते हैं. इस बर्ताव को आम तौर पर, ओवरस्कैन कहा जाता है. अपने लेआउट के चारों ओर 10% मार्जिन शामिल करके, ओवरस्कैन की वजह से स्क्रीन के एलिमेंट को क्लिप होने से बचाएं.
डिफ़ॉल्ट ऑडियो यूज़र इंटरफ़ेस (यूआई)
MetadataType.MUSIC_TRACK

A. --logo-image
B. MusicTrackMediaMetadata.albumName
C. MusicTrackMediaMetadata.title
D. MusicTrackMediaMetadata.albumArtist, MusicTrackMediaMetadata.artist या MusicTrackMediaMetadata.composer
E. MusicTrackMediaMetadata.images[0]

H. चलाएं / रोकें
कस्टम यूज़र इंटरफ़ेस (यूआई) डेटा बाइंडिंग
Cast Web Receiver SDK, cast-media-player के बजाय, अपने कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट का इस्तेमाल करने की सुविधा देता है.
कस्टम यूज़र इंटरफ़ेस (यूआई) डेटा बाइंडिंग की मदद से, अपने कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट का इस्तेमाल किया जा सकता है. साथ ही, रिसीवर में
cast-media-player एलिमेंट जोड़ने के बजाय, यूज़र इंटरफ़ेस (यूआई) को प्लेयर की स्थिति से बाइंड करने के लिए,
PlayerDataBinder
क्लास का इस्तेमाल किया जा सकता है. अगर ऐप्लिकेशन, डेटा बाइंडिंग की सुविधा के साथ काम नहीं करता है, तो बाइंडर, डेटा में हुए बदलावों के लिए इवेंट भेजने की सुविधा भी देता है.
const context = cast.framework.CastReceiverContext.getInstance();
const player = context.getPlayerManager();
const playerData = {};
const playerDataBinder = new cast.framework.ui.PlayerDataBinder(playerData);
// Update ui according to player state
playerDataBinder.addEventListener(
cast.framework.ui.PlayerDataEventType.STATE_CHANGED,
e => {
switch (e.value) {
case cast.framework.ui.State.LAUNCHING:
case cast.framework.ui.State.IDLE:
// Write your own event handling code
break;
case cast.framework.ui.State.LOADING:
// Write your own event handling code
break;
case cast.framework.ui.State.BUFFERING:
// Write your own event handling code
break;
case cast.framework.ui.State.PAUSED:
// Write your own event handling code
break;
case cast.framework.ui.State.PLAYING:
// Write your own event handling code
break;
}
});
context.start();
आपको एचटीएमएल में कम से कम एक
MediaElement
जोड़ना चाहिए, ताकि Web Receiver इसका इस्तेमाल कर सके. अगर एक से ज़्यादा MediaElement ऑब्जेक्ट उपलब्ध हैं, तो आपको उस MediaElement को टैग करना चाहिए जिसका इस्तेमाल Web Receiver से कराना है. इसके लिए, वीडियो की क्लास
लिस्ट में castMediaElement जोड़ें. जैसा कि यहां दिखाया गया है. ऐसा न करने पर, Web Receiver पहले
MediaElement को चुन लेगा.
<video class="castMediaElement"></video>