ตัวรับสัญญาณเว็บที่กําหนดเอง

เริ่มต้นอย่างรวดเร็ว - โค้ดสําหรับสร้างผู้รับเว็บที่กําหนดเองแบบพื้นฐานเป็นเรื่องง่าย ข้ามไปข้างหน้าเพื่อลงทะเบียนแอปตัวรับสัญญาณเว็บ แล้วสร้างแอปตัวรับเว็บพื้นฐาน

Web Receiver SDK ใช้โปรแกรมเล่นสื่อในตัวเพื่อมอบประสบการณ์การเล่นที่สะดวกและราบรื่น ฟีเจอร์นี้รองรับ Google Assistant ทันทีที่แกะกล่อง รวมทั้งฟีเจอร์เฉพาะสําหรับ Cast ที่รองรับผู้ส่งและอุปกรณ์ที่ใช้ระบบสัมผัสทั้งหมดโดยอัตโนมัติ เมื่อมีการเปิดตัวฟีเจอร์ใหม่ ระบบจะยังรองรับฟีเจอร์เหล่านั้นต่อไปโดยไม่มีการเปลี่ยนแปลงผู้ส่งเพิ่มเติม

ตัวรับสัญญาณเว็บที่กําหนดเองเป็นแอป HTML5 ที่สร้างขึ้นเอง ซึ่งต้องโฮสต์เพื่อแสดงเนื้อหาบนอุปกรณ์ที่พร้อมใช้งาน Cast คุณอาจต้องสร้างตัวรับสัญญาณเว็บที่กําหนดเอง ทั้งนี้ขึ้นอยู่กับความต้องการของธุรกิจของคุณ สําหรับความช่วยเหลือในการตัดสินใจว่าจะใช้ตัวรับสัญญาณประเภทใด โปรดดูคู่มือการเลือกตัวรับสัญญาณเว็บ

SDK ตัวรับเว็บของ Google

แอป Web Receiver จะเข้าถึง Web Receiver API โดยใช้ข้อมูลอ้างอิงต่อไปนี้

<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>

แนวทางปฏิบัติแนะนําสําหรับโปรโตคอล URL: โปรดทราบว่า URL ด้านบนไม่ได้ระบุโปรโตคอล "http:" หรือ "https:" การละเว้นโปรโตคอลเหล่านี้เมื่อจัดหาทรัพยากร cast_receiver_framework.js จะช่วยให้ดึงทรัพยากรนี้ได้โดยใช้โปรโตคอลเดียวกับเซิร์ฟเวอร์ที่โฮสต์แอปตัวรับเว็บ ซึ่งหมายความว่าการสลับไปมาระหว่าง HTTP สําหรับการพัฒนาและ HTTPS สําหรับเวอร์ชันที่ใช้งานจริงจะโปร่งใสและไม่จําเป็นต้องเปลี่ยนแปลงโค้ด (แอปผู้รับเว็บที่เผยแพร่ต้องโฮสต์ ในเซิร์ฟเวอร์ที่ใช้ TLS ได้)

ตัวอย่าง SDK

Cast Web Receiver SDK รุ่นทดลองพร้อมใช้งานสําหรับการทดสอบแอปพลิเคชันที่ไม่ได้ใช้งานจริงด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับ URL ตัวอย่าง SDK ได้ที่URL ตัวอย่าง SDK ของ Google Cast Web Receiver

วงจรการใช้งานแอปพลิเคชัน

วงจรการทํางานของตัวรับสัญญาณแอปจะเริ่มจากจุดที่ตัวรับสัญญาณเว็บโหลดขึ้นไปยังอุปกรณ์แคสต์ และดําเนินการต่อไปจนถึงจุดที่แอปพลิเคชันถูกแยกออกจากกัน และอุปกรณ์แคสต์จะกลับสู่สถานะเริ่มต้น

วงจรการทํางานของตัวรับสัญญาณเว็บจะกระจายข้อความระหว่างตัวรับสัญญาณของแอปพลิเคชันและแอปพลิเคชันผู้ส่งที่เชื่อมต่ออยู่ แอปพลิเคชันผู้ส่งจะส่งข้อความเริ่มต้นไปยังอุปกรณ์ Google Cast ที่ขอสร้างเซสชันโดยใช้รหัสแอปที่เจาะจง การดําเนินการนี้จะเริ่มต้นวงจรของเครื่องรับเว็บ เนื่องจากอุปกรณ์ Google Cast จะพยายามโหลดแอปตัวรับเว็บ สมมติว่าไม่มีปัญหาด้านเครือข่าย แอปตัวรับเว็บจะดาวน์โหลดจากเครือข่ายโดยใช้ URL ที่แก้ไขซึ่งเชื่อมโยงกับรหัสแอป เมื่อโหลดแล้ว แอป Web Receiver จะดําเนินการตั้งค่าและระบุแอปนั้นพร้อมที่จะประมวลผลข้อความจากแอปพลิเคชันผู้ส่งที่เชื่อมต่อ

แอปตัวรับข้อมูลเว็บอาจฉีกกฎ (สิ้นสุดอายุการใช้งานปัจจุบันและปิดแอปพลิเคชัน) ตามเงื่อนไขต่อไปนี้

  • แอปผู้รับเว็บได้รับข้อความที่ชัดเจนจากผู้ส่งที่เชื่อมต่อคนสุดท้ายเพื่อสิ้นสุดเซสชันของแอปพลิเคชัน
  • แอปผู้รับเว็บไม่มีการใช้งานเป็นระยะเวลาตามที่กําหนดไว้โดยไม่มีผู้ส่งที่เชื่อมต่อและตัดสินใจสิ้นสุดเซสชันแอปพลิเคชัน
  • เซสชันการแคสต์เริ่มต้นแล้ว
  • ตัวรับสัญญาณเว็บพบข้อผิดพลาดร้ายแรงในช่วงชีวิตปกติ

Web Receiver SDK จะจัดการกรณีทั่วไปทั้งหมดตามหลักเกณฑ์ด้าน UX ของเรา

ชั้นเรียนหลัก

เฟรมเวิร์ก SDK ตัวรับสัญญาณเว็บมี 2 คลาสหลัก ดังนี้

  • cast.framework.CastReceiverContext - จัดการเฟรมเวิร์กโดยรวมและโหลดไลบรารีที่จําเป็น คุณจะทําสิ่งต่อไปนี้ได้จากออบเจ็กต์นี้

    • ตั้งค่าตัวเลือกการกําหนดค่าแอปพลิเคชัน
    • จัดการเหตุการณ์ของระบบ (เช่น ผู้ส่งเชื่อมต่อหรือยกเลิกการเชื่อมต่อ)
    • สร้างแชแนลที่กําหนดเอง
    • เริ่มแคสต์การแคสต์
  • cast.framework.PlayerManager - จัดการการเล่นสื่อ โดยจะจัดการโปรแกรมเล่นและองค์ประกอบสื่อตาม คําขอจากผู้ส่ง คุณจะทําสิ่งต่อไปนี้ได้จากออบเจ็กต์นี้

    • จัดการการดําเนินการเล่น
    • จัดการคําขอที่เกี่ยวกับการเล่นจากผู้ส่ง
    • จัดการเหตุการณ์เกี่ยวกับการเล่น

ลงทะเบียนแอปตัวรับเว็บ

ก่อนที่จะพัฒนาแอป Web Receiver คุณจะต้องลงทะเบียนแอป Web Receiver กับ Google Cast SDK Developer Console ดูข้อมูลเพิ่มเติมได้ในการจดทะเบียน แอป Web Receiver ทั้งหมดกําหนดให้แอปพลิเคชันของผู้ส่งต้องระบุรหัสแอปพร้อมด้วยข้อความคําสั่งที่จะส่งไปยัง Web Receiver ผ่าน API ของผู้ส่ง เมื่อลงทะเบียนแอปพลิเคชัน Web Receiver คุณจะได้รับรหัสแอปที่จะรวมไว้ในการเรียก API ของผู้ส่ง

สร้างแอปตัวรับสัญญาณพื้นฐาน

ต่อไปนี้คือโครงสร้างหลักของแอปผู้รับเว็บพื้นฐานที่ไม่มีการปรับแต่ง

  1. องค์ประกอบ HTML cast-media-player ที่ใช้แสดงโปรแกรมเล่นสื่อ
  2. องค์ประกอบ HTML สคริปต์สําหรับโหลดเฟรมเวิร์ก Web Receiver
  3. โทร start() เพื่อเริ่มแอปตัวรับเว็บโดยไม่มีตัวเลือก

นี่คือโค้ดขั้นต่ําสําหรับแอป Web Receiver ที่ใช้เฟรมการทํางานของแอปพลิเคชัน Cast โดยไม่มีการปรับแต่ง คุณคัดลอกและวางสคริปต์ตามที่เป็นอยู่ในแอปเพื่อสร้างแอปตัวรับเว็บได้

<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>
  <script>
    cast.framework.CastReceiverContext.getInstance().start();
  </script>
</body>
</html>

ณ จุดนี้ ผู้ใช้สามารถเปิดแอปผู้ส่ง เชื่อมต่อกับอุปกรณ์แคสต์ จากนั้นไปที่สื่อแล้วกด "เล่น" ซึ่งจะบอกให้ตัวรับเว็บสตรีมสื่อไปยังทีวีให้ผู้ใช้ดู

เปรียบเทียบตัวรับสัญญาณพื้นฐานนี้กับแอปตัวรับสัญญาณที่กําหนดเอง

สื่อและโปรแกรมเล่น

เฟรมเวิร์กแคสต์มีโปรแกรมเล่นสื่อในตัว ซึ่งนําเสนอโดยองค์ประกอบ HTML cast-media-player โปรแกรมเล่นสื่อนี้รองรับการเล่นสําหรับโปรโตคอลสตรีมมิง เช่น MPEG-DASH, HLS และ Smooth Streaming

ชุดตัวแปลงรหัสและคอนเทนเนอร์สื่อที่รองรับจะแสดงอยู่ในสื่อที่รองรับ นักพัฒนาซอฟต์แวร์สามารถรองรับรายการการดําเนินการที่ผู้ส่งเป็นผู้เริ่ม เช่น การโหลด การเล่น การหยุดชั่วคราว และการตรวจหาข้อมูล โดยการแคสต์ SDK จะจัดการการโต้ตอบกับสื่อผ่านการรับส่งข้อความ Cast โปรดดูรายชื่อการดําเนินการที่รองรับในข้อมูลอ้างอิงของ API ผู้ส่งสําหรับแพลตฟอร์มของแอปคุณ: RemoteMediaClient ใน Android Sender, GCKMediaControlChannel ใน iOS Sender และ Media ใน Web Sender

กลไกการแชร์ทรัพยากรข้ามโดเมน

Google Cast รองรับการแชร์ทรัพยากรข้ามโดเมน (CORS) อย่างเต็มรูปแบบ โปรโตคอลสตรีมมิงต่างจากโปรโตคอลที่ใช้ไฟล์ส่วนใหญ่ และเข้าถึงเนื้อหาได้แบบไม่พร้อมกันโดยใช้ XMLHttpRequest ในโลกของ CORS คําขอเหล่านี้จะป้องกันการเข้าถึงที่ไม่เหมาะสมด้วยส่วนหัว CORS จากเซิร์ฟเวอร์ที่มีทรัพยากรนั้น ซึ่งหมายความว่าเซิร์ฟเวอร์เนื้อหาของคุณมีคําอธิบายว่าจะให้รวมอยู่ในนั้นที่ตําแหน่งใด เบราว์เซอร์รุ่นใหม่ส่วนใหญ่รองรับ CORS อย่างสมบูรณ์ อุปกรณ์ iOS และ Android เข้าถึงเนื้อหาในระดับที่ต่ําลงและไม่ได้ดูที่ส่วนหัวเหล่านี้ ซึ่งมักจะเป็นปัญหาแรกที่เกิดขึ้นเมื่อนักพัฒนาซอฟต์แวร์ต้องการใช้เนื้อหาสตรีมมิง โปรดดูรายละเอียดที่การแชร์ทรัพยากรข้ามโดเมน