Web Receiver SDK มี UI ของโปรแกรมเล่นในตัว หากต้องการใช้ UI นี้ในแอปผู้รับเว็บที่กําหนดเอง คุณจะต้องเพิ่มองค์ประกอบ cast-media-player
ลงในส่วนเนื้อหาของไฟล์ HTML
<body>
<cast-media-player></cast-media-player>
</body>
ตัวแปร CSS ช่วยให้คุณปรับแต่งพร็อพเพอร์ตี้ cast-media-player
ต่างๆ ได้ ซึ่งรวมถึงพื้นหลังของโปรแกรมเล่น รูปภาพหน้าจอ ชุดแบบอักษร และอื่นๆ คุณเพิ่มตัวแปรเหล่านี้ด้วยสไตล์ CSS ในบรรทัด, สไตล์ชีต CSS หรือ style.setProperty
ใน JavaScript ได้
ในส่วนถัดไป โปรดดูวิธีปรับแต่งแต่ละองค์ประกอบขององค์ประกอบโปรแกรมเล่นสื่อ คุณสามารถใช้เทมเพลตต่อไปนี้เพื่อเริ่มต้นใช้งาน
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/ตัวรับ.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>
โลโก้ Play
โลโก้การเล่นจะแสดงที่มุมซ้ายบนของตัวรับขณะที่เล่นสื่อ พร็อพเพอร์ตี้นี้แยกต่างหากจากชั้นเรียน .logo
คุณสามารถปรับแต่ง --playback-logo-image
ได้จากตัวเลือก body
body {
--playback-logo-image: url('image.png'); /* set from the body selector */
}
คุณสมบัติการเล่นขณะล็อกหน้าจอหรือขณะใช้แอปอื่น
ตัวแปร --background
จะตั้งค่าพร็อพเพอร์ตี้พื้นหลังของโปรแกรมเล่นทั้งหมด
ซึ่งจะแสดงระหว่างการเปิดตัวและการเล่น ตัวอย่างเช่น คุณสามารถตั้งค่าพื้นหลัง
ทั้งหมดเป็นการไล่ระดับสีแบบเส้นตรงสีขาวและสีเงิน
cast-media-player {
--background-image: linear-gradient(white, silver);
}
ตัวรับสัญญาณเว็บ:
คุณใช้ตัวแปรต่อไปนี้เพื่อปรับแต่งพร็อพเพอร์ตี้ .background
ได้
ตัวแปรและค่าเริ่มต้น
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
--พื้นหลัง | ดำ | พร็อพเพอร์ตี้พื้นหลังของ CSS |
--สีพื้นหลัง- | พร็อพเพอร์ตี้สีพื้นหลัง CSS | |
--พื้นหลัง-รูปภาพ | พร็อพเพอร์ตี้ภาพพื้นหลัง CSS | |
--พื้นหลัง-ทําซ้ํา | ไม่แสดงซ้ํา | พร็อพเพอร์ตี้ทําซ้ําพื้นหลังของ CSS |
--ขนาดพื้นหลัง | เพลงคัฟเวอร์ | พร็อพเพอร์ตี้ขนาดพื้นหลังของ CSS |
เทมเพลต CSS
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');
}
ตัวรับสัญญาณเว็บ:
คุณใช้ตัวแปรต่อไปนี้เพื่อปรับแต่งพร็อพเพอร์ตี้ .logo
ได้
ตัวแปรและค่าเริ่มต้น
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
--โลโก้พื้นหลัง | พร็อพเพอร์ตี้พื้นหลังของ CSS | |
--โลโก้-สี | พร็อพเพอร์ตี้สีพื้นหลัง CSS | |
--โลโก้-รูปภาพ | พร็อพเพอร์ตี้ภาพพื้นหลัง CSS | |
--โลโก้ซ้ํา | ไม่แสดงซ้ํา | พร็อพเพอร์ตี้ทําซ้ําพื้นหลังของ CSS |
--ขนาดโลโก้ | พร็อพเพอร์ตี้ขนาดพื้นหลังของ CSS |
เทมเพลต CSS
cast-media-player {
--logo-background:
--logo-color:
--logo-image:
--logo-repeat:
--logo-size:
}
พร็อพเพอร์ตี้แนะนํา
คลาส .splash
ครอบคลุมผู้เล่นทั้งหมด เช่นเดียวกับคลาส .logo
หากคุณตั้งค่าพร็อพเพอร์ตี้เหล่านี้ ตัวแปร .splash
จะลบล้างตัวแปร .logo
เมื่อไม่มีการใช้งานเครื่องรับ ซึ่งหมายความว่าคุณสามารถใช้พร็อพเพอร์ตี้ .logo
1 ชุดเมื่อเปิดตัว และแสดงพื้นหลังหรือรูปภาพแยกกันเมื่อผู้รับไม่มีความเคลื่อนไหว
ตัวอย่างเช่น คุณอาจลบล้างพื้นหลังที่ไล่ระดับสีขาวและสีเงินด้วย dimgray
แล้วเพิ่มไอคอนกําลังรอ... แบบเคลื่อนไหว
cast-media-player {
--splash-color: dimgray;
--splash-image: url('waiting.png');
}
ตัวรับสัญญาณเว็บ:
หากไม่ตั้งค่าพร็อพเพอร์ตี้เหล่านี้ ผู้รับของคุณจะใช้การตั้งค่า .logo
หรือชื่อแอปเป็นค่าเริ่มต้นเมื่อไม่มีความเคลื่อนไหว
คุณใช้ตัวแปรต่อไปนี้เพื่อปรับแต่งพร็อพเพอร์ตี้ .splash
ได้
ตัวแปรและค่าเริ่มต้น
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
--หน้าจอเริ่มต้น | พร็อพเพอร์ตี้พื้นหลังของ CSS | |
--หน้าจอแนะนํา | พร็อพเพอร์ตี้สีพื้นหลัง CSS | |
--รูปภาพแนะนํา | พร็อพเพอร์ตี้ภาพพื้นหลัง CSS | |
--หน้าจอแนะนํา | พร็อพเพอร์ตี้ทําซ้ําพื้นหลังของ CSS | |
--ขนาดแนะนํา | พร็อพเพอร์ตี้ขนาดพื้นหลังของ CSS |
เทมเพลต CSS
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 | รูปภาพที่ 2 ในภาพสไลด์ | |
--slideshow-image-3 | รูปภาพที่ 3 ในภาพสไลด์ | |
--slideshow-image-4 | รูปที่ 4 ในภาพสไลด์ | |
--slideshow-image-5 | รูปภาพที่ 5 ในภาพสไลด์ | |
--slideshow-image-6 | รูปภาพที่ 6 ในภาพสไลด์ | |
--slideshow-image-7 | รูปภาพที่ 7 ในภาพสไลด์ | |
--slideshow-image-8 | รูปภาพที่ 8 ในภาพสไลด์ | |
--slideshow-image-9 | รูปภาพที่ 9 ในภาพสไลด์ | |
--slideshow-image-10 | รูปภาพที่ 1 ในภาพสไลด์ |
เทมเพลต CSS
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
ได้
ตัวแปรและค่าเริ่มต้น
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
--ลายน้ํา-พื้นหลัง | พร็อพเพอร์ตี้พื้นหลังของ CSS | |
--สีน้ํา | พร็อพเพอร์ตี้สีพื้นหลัง CSS | |
--ลายน้ํา-รูปภาพ | พร็อพเพอร์ตี้ภาพพื้นหลัง CSS | |
--ตําแหน่งลายน้ํา | ขวาล่าง | พร็อพเพอร์ตี้ตําแหน่งในเบื้องหลังของ CSS |
--ลายน้ํา-การทําซ้ํา | ไม่แสดงซ้ํา | พร็อพเพอร์ตี้ทําซ้ําพื้นหลังของ CSS |
--ขนาดลายน้ํา | พร็อพเพอร์ตี้ขนาดพื้นหลังของ CSS |
เทมเพลต CSS
cast-media-player {
--watermark-background:
--watermark-color:
--watermark-image:
--watermark-position:
--watermark-repeat:
--watermark-size:
}
การเล่น โฆษณา และพร็อพเพอร์ตี้ CSS อื่นๆ
นอกจากนี้ คุณยังปรับแต่งโฆษณา แบบอักษร รูปภาพโปรแกรมเล่น และพร็อพเพอร์ตี้อื่นๆ ได้จากตัวเลือก cast-media-player
ตัวแปรและค่าเริ่มต้น
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
--ad-title | โฆษณา | ชื่อโฆษณา |
--ข้ามชื่อโฆษณา | ข้ามโฆษณา | ข้อความของกล่องข้อความข้ามโฆษณา |
--ช่วงพักโฆษณาสี | hsl(โทนสี, 100%, 50%) | สีสําหรับเครื่องหมายช่วงพักโฆษณา |
--แบบอักษร-ครอบครัว | Open Sans | ชุดแบบอักษรสําหรับข้อมูลเมตาและแถบความคืบหน้า |
--รูปภาพหมุน | ภาพเริ่มต้น | รูปภาพที่จะแสดงขณะเปิด |
--การบัฟเฟอร์รูปภาพ | ภาพเริ่มต้น | รูปภาพที่จะแสดงในขณะบัฟเฟอร์ |
--หยุดชั่วคราว-รูปภาพ | ภาพเริ่มต้น | รูปภาพที่จะแสดงขณะหยุดชั่วคราว |
--เล่นรูปภาพ | รูปภาพที่จะแสดงในข้อมูลเมตาขณะเล่น | |
--ธีม | 42 | โทนสีที่จะใช้สําหรับโปรแกรมเล่น |
--ความคืบหน้าของสี | hsl(โทนสี, 95%, 60%) | สีสําหรับแถบความคืบหน้า |
เทมเพลต CSS
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% ในทุกด้านของเลย์เอาต์
UI เสียงเริ่มต้น
MetadataType.MUSIC_TRACK
ก. --logo-image
ข. MusicTrackMediaMetadata.albumName
ค. MusicTrackMediaMetadata.title
ง. MusicTrackMediaMetadata.albumArtist
, MusicTrackMediaMetadata.artist
หรือ MusicTrackMediaMetadata.composer
จ. MusicTrackMediaMetadata.images[0]
ซ. เล่น/หยุดชั่วคราว
การเชื่อมโยงข้อมูล UI ที่กําหนดเอง
Cast Web Receiver SDK รองรับการใช้องค์ประกอบ UI ที่คุณกําหนดเองมากกว่า cast-media-player
การเชื่อมโยงข้อมูล UI ที่กําหนดเองช่วยให้คุณใช้องค์ประกอบ UI ที่กําหนดเองของตัวเองได้ และใช้คลาส PlayerDataBinder
เพื่อเชื่อมโยง UI กับสถานะโปรแกรมเล่นแทนการเพิ่มองค์ประกอบ cast-media-player
ลงในตัวรับ นอกจากนี้ Binder ยังรองรับการส่งเหตุการณ์สําหรับการเปลี่ยนแปลงข้อมูลหากแอปไม่รองรับการเชื่อมโยงข้อมูล
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
ลงใน HTML เพื่อให้ตัวรับสัญญาณใช้งานได้ หากมีออบเจ็กต์ MediaElement
หลายรายการพร้อมใช้งาน คุณควรติดแท็ก MediaElement
ที่ต้องการให้เว็บรีซีฟเวอร์ใช้ โดยเพิ่ม castMediaElement
ในรายการชั้นเรียนของวิดีโอดังที่แสดงด้านล่าง มิเช่นนั้นตัวรับข้อมูลเว็บจะเลือก MediaElement
รายการแรก
<video class="castMediaElement"></video>