เมื่อแคสต์เนื้อหาไปยังเว็บรีซีฟเวอร์ ผู้ใช้ต้องสามารถควบคุมเนื้อหาจากแอปผู้ส่งได้เสมอ
หมายเหตุ: แอปพลิเคชันสื่อ Cast ต้องใช้ API การควบคุม Play (ข้อความ การเล่นสื่อ) ที่กำหนดไว้สำหรับ SDK เพื่อควบคุมการเล่นสื่อบนเว็บรีซีฟเวอร์ ตามข้อกำหนดในการให้บริการเพิ่มเติมสำหรับนักพัฒนาซอฟต์แวร์ Google Cast SDK
แอปผู้ส่งควรมีตัวควบคุม Cast ในด้านต่อไปนี้
- กล่องโต้ตอบการแคสต์ ขณะแคสต์
- การควบคุมระดับเสียงของผู้ส่ง
- ตัวควบคุมที่ขยายผู้ส่ง
- มินิคอนโทรลเลอร์ของผู้ส่ง
- การแจ้งเตือนผู้ส่ง
- หน้าจอล็อกของผู้ส่ง
สถานะและตัวควบคุมการเล่น Cast ของแอปผู้ส่งในพื้นที่เหล่านี้ต้องซิงค์กับการเปลี่ยนแปลงการเล่นที่เกิดขึ้นใน Web Receiver แม้ว่าแอปของผู้ส่งจะไม่ได้สร้างขึ้นก็ตาม การดำเนินการนี้จะช่วยให้จัดการทั้งคำสั่งของผู้ส่งหลายรายและการควบคุมการเล่นที่มาจากรีโมตคอนโทรล ปุ่ม ฯลฯ ของอุปกรณ์ได้อย่างเหมาะสม
Android
ตัวควบคุมกล่องโต้ตอบการแคสต์

มินิคอนโทรล

การควบคุมการแจ้งเตือน

ล็อกปุ่มควบคุมหน้าจอ

iOS
ตัวควบคุมกล่องโต้ตอบการแคสต์

มินิคอนโทรล

Chrome
ตัวควบคุมกล่องโต้ตอบการแคสต์

มินิคอนโทรล

การควบคุมระดับเสียงของผู้ส่ง
แอปผู้ส่งต้องอนุญาตให้ผู้ใช้ควบคุมระดับเสียงของเนื้อหาที่เล่นในทีวีหรือลำโพงโดยใช้ปุ่มระดับเสียงของฮาร์ดแวร์และ/หรือแถบเลื่อนระดับเสียงของซอฟต์แวร์ในอุปกรณ์ที่ส่ง การควบคุมนี้จะควบคุมการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
- ระดับเสียงที่ส่งไปยังทีวีสำหรับอุปกรณ์ Google Cast เช่น Chromecast
- ระดับเสียงจริงของทีวี/ลำโพงเนทีฟสำหรับ Google Cast TV, ทีวีที่มี Android TV ในตัว และลำโพงอัจฉริยะ
จำเป็น
ก แอปผู้ส่งต้องอนุญาตให้ผู้ใช้ควบคุมระดับเสียงของเนื้อหาที่เล่นในทีวีหรือลำโพงโดยใช้ปุ่มระดับเสียงของฮาร์ดแวร์และ/หรือแถบเลื่อนระดับเสียงของซอฟต์แวร์ในอุปกรณ์ที่ส่ง
- Android: จำเป็นต้องรองรับทั้งปุ่มฮาร์ดแวร์และแถบเลื่อนปรับระดับเสียงของซอฟต์แวร์
- iOS: จำเป็นต้องมีแถบเลื่อนระดับเสียงซอฟต์แวร์
- เว็บ/Chrome: จำเป็นต้องรองรับแถบเลื่อนระดับเสียงของซอฟต์แวร์
B ในอุปกรณ์เคลื่อนที่ แถบเลื่อนระดับเสียงของซอฟต์แวร์ต้องอยู่ในกล่องโต้ตอบการแคสต์ ขณะแคสต์
C แถบเลื่อนระดับเสียงในแอปผู้ส่งต้องซิงค์กับระดับเสียงของเว็บรีซีฟเวอร์ปัจจุบันหลังจากเชื่อมต่อกับเว็บรีซีฟเวอร์และซิงค์อยู่เสมอ
D แถบเลื่อนระดับเสียงในแอปผู้ส่งต้องแสดงถึงการเปลี่ยนแปลงระดับเสียงที่ผู้ส่งรายอื่นหรือรีโมตคอนโทรลของแอป Chromecast
E แอปของผู้ส่งไม่ควรตั้งค่าระดับเสียงเป็นระดับที่กำหนดไว้ล่วงหน้า และควรส่งเฉพาะการเปลี่ยนแปลงระดับเสียงที่เริ่มต้นโดยผู้ใช้เท่านั้น
F เฉพาะ Android: เมื่อใช้ปุ่มฮาร์ดแวร์เพื่อเปลี่ยนระดับเสียงใน Web Receiver แถบเลื่อนปรับระดับเสียงแบบภาพ (ที่มีไอคอน "แคสต์" ทางด้านซ้าย) ต้องปรากฏขึ้นเมื่อกดปุ่มปรับระดับเสียงของฮาร์ดแวร์ หมายเหตุ: สำหรับ Android Gingerbread (เวอร์ชัน 2.3) ไอคอน Cast จะไม่ปรากฏขึ้น
แนวทางปฏิบัติแนะนำ
- การเพิ่มระดับเสียง:
- Android: เฟรมเวิร์กจะเพิ่มระดับเสียงโดยอัตโนมัติ
- iOS และ Chrome: สำหรับปุ่มปรับระดับเสียงแบบฮาร์ดแวร์ ให้เพิ่มค่าที่มากกว่าหรือเท่ากับ 5% ของช่วงระดับเสียงทั้งหมดของอุปกรณ์รับสัญญาณเสียง/วิดีโอของอุปกรณ์เว็บรีซีฟเวอร์ และจะเพิ่มเป็น 2% ของช่วงระดับเสียงเต็มของอุปกรณ์ Web Receiver สำหรับอุปกรณ์ที่มีเฉพาะเสียง
ตัวควบคุมที่ขยายผู้ส่ง
แอปของผู้ส่งต้องมีตัวควบคุมที่ขยายสำหรับเนื้อหาที่กำลังแคสต์
ต้องระบุ
ก ระบุเนื้อหาที่กำลังแคสต์โดยการแสดงชื่อเนื้อหาหรืออาร์ตเวิร์ก
B ก่อนเริ่มเล่น ให้แสดงสัญญาณบอกสถานะการโหลดและชื่อเนื้อหาหรืออาร์ตเวิร์ก
C เมื่อเนื้อหาเริ่มต้น ให้ระบุสถานะของเว็บรีซีฟเวอร์
D ให้การควบคุมที่เกี่ยวข้อง
E แสดงเวลาเล่นปัจจุบันทางด้านซ้ายของแถบค้นหา
ที่ด้านขวาสุด ให้แสดงระยะเวลารวมของสตรีมหากทราบหรือไม่ใช่สตรีมแบบสด
F ซ่อนตัวควบคุมที่ไม่เกี่ยวข้องกับการแคสต์
G อย่ายกเลิกการเชื่อมต่อหรือหยุดการแคสต์เมื่อผู้ใช้ออกจากตัวควบคุมที่ขยาย
H มอบวิธีกลับไปยังตัวควบคุมที่ขยายได้อย่างง่ายดายเมื่อผู้ใช้ออกจากหน้า
แนวทางปฏิบัติแนะนำ
- ระบุแถบเลื่อนตำแหน่งการเล่นสำหรับสตรีมสื่อ
- แสดงอาร์ตเวิร์กและข้อมูลเมตาที่เกี่ยวข้องกับเนื้อหาที่มีความหมายอื่นๆ
- ระบุเวลาที่ผ่านไปและระยะเวลาของเนื้อหาสำหรับสตรีมสื่อ
Android
กำลังโหลดเนื้อหาของผู้ส่ง

กำลังโหลดเนื้อหาของตัวรับ

การเล่นเนื้อหาของผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

iOS
กำลังโหลดเนื้อหาของผู้ส่ง

กำลังโหลดเนื้อหาของเว็บรีซีฟเวอร์

การเล่นเนื้อหาของผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

Chrome
กำลังโหลดเนื้อหาของผู้ส่ง

กำลังโหลดเนื้อหาของเว็บรีซีฟเวอร์

การเล่นเนื้อหาของผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

ตัวควบคุมขนาดเล็กของผู้ส่ง
ตัวควบคุมขนาดเล็กที่เรียกว่าตัวควบคุมขนาดเล็กควรปรากฏขึ้นขณะที่แคสต์เมื่อผู้ใช้ออกจากหน้าเนื้อหาปัจจุบันหรือตัวควบคุมแบบขยายไปยังมุมมองอื่นภายในแอปผู้ส่ง ตัวควบคุมขนาดเล็กจะแสดงการแจ้งเตือนการแคสต์ปัจจุบันและให้คุณเข้าถึงตัวควบคุมได้ทันที
ต้องระบุ
A แถบหรือกล่องที่แสดงสิ่งที่แคสต์อยู่บริเวณด้านล่างของแอปผู้ส่ง การควบคุมเหล่านี้จะยังคงอยู่ขณะที่ผู้ใช้เรียกดูเนื้อหาหรือส่วนอื่นๆ ของแอป
B การควบคุมจะทำงานได้ดีที่สุดเมื่อเรียบง่ายและ
สื่อสารสิ่งที่กำลังแคสต์
C พร้อมใช้งานในทุกหน้าจอของแอป (ยกเว้นหน้าตัวควบคุมที่ขยาย)
D การแตะที่บริเวณเนื้อหาจะเปิดตัวควบคุมที่ขยาย
E ระบุการควบคุมอื่นๆ ที่เกี่ยวข้องกับการดำเนินการทันที
แนวทางปฏิบัติแนะนำ
นอกเหนือจากตัวควบคุมขนาดเล็กแล้ว ให้กำหนดตัวควบคุมในกล่องโต้ตอบการแคสต์เพื่อมอบประสบการณ์ที่ดีที่สุดให้แก่ผู้ใช้
Android
มินิคอนโทรลเลอร์สำหรับผู้ส่ง

เนื้อหาของเว็บรีซีฟเวอร์หยุดชั่วคราว

iOS
มินิคอนโทรลเลอร์สำหรับผู้ส่ง

เนื้อหาของเว็บรีซีฟเวอร์หยุดชั่วคราว

Chrome
มินิคอนโทรลเลอร์สำหรับผู้ส่ง

เนื้อหาของเว็บรีซีฟเวอร์หยุดชั่วคราว

การแจ้งเตือนของผู้ส่ง
ต้องระบุ (Android เท่านั้น)
A ใช้ไอคอนแอป (ไม่ใช่ไอคอนแคสต์) สำหรับ
การแจ้งเตือนในแถบสถานะ
B ระบุว่าเนื้อหาใดกำลังแคสต์ เช่น แสดงชื่อเนื้อหาหรืออาร์ตเวิร์ก
C ระบุว่าเว็บรีซีฟเวอร์ใดที่กำลังแคสต์อยู่
D ให้การควบคุมเนื้อหาพื้นฐาน
E ระบุ "X" เพื่อหยุดแคสต์และยกเลิกการเชื่อมต่อกับเว็บรีซีฟเวอร์ในแถวการดำเนินการ
F การแตะโลโก้แอป ชื่อเนื้อหา หรืออาร์ตเวิร์กควรเปิดตัวควบคุมแบบขยายของแอปผู้ส่ง
Notes
- Android เท่านั้น: คุณไม่สามารถใช้การแจ้งเตือนใน iOS หรือ Chrome ได้
- ใน Android Gingerbread (เวอร์ชัน 2.3) การแจ้งเตือนจะแสดงเฉพาะไอคอนแอปและข้อความเท่านั้น ไม่เล่น/หยุดชั่วคราว หรือหยุด
- ดูข้อมูลเพิ่มเติมได้ที่การเพิ่มตัวควบคุมสื่อในการแจ้งเตือน
Android
ไอคอนการแจ้งเตือนผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

การควบคุมการแจ้งเตือนผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

หน้าจอล็อกของผู้ส่ง
ต้องระบุ (Android เท่านั้น)
A ระบุเนื้อหาที่แคสต์โดยใช้ชื่อเนื้อหาหรืออาร์ตเวิร์ก
B ระบุว่า Web Receiver ใดกำลังแคสต์ โปรดทราบว่าไม่จำเป็นต้องดำเนินการนี้สำหรับแอป Music
C ระบุตัวควบคุมการเล่น
D ให้สิทธิ์เข้าถึงการควบคุมระดับเสียงผ่านปุ่มฮาร์ดแวร์
ต้องระบุสำหรับ Android 4.4 KitKat และเวอร์ชันที่ใหม่กว่า:
- ไอคอนแอป
- อาร์ตเวิร์ก (เช่น ปกอัลบั้ม)
- ระบุข้อความเกี่ยวกับเนื้อหาที่กำลังแคสต์ (เช่น "Tears of Steel")
- ระบุเว็บรีซีฟเวอร์ที่กำลังแคสต์อยู่ (เช่น "ห้องนั่งเล่น")
ต้องระบุสำหรับ Android 4.3 Jelly Bean:
- อาร์ตเวิร์ก (เช่น ปกอัลบั้ม)
- ระบุข้อความเกี่ยวกับเนื้อหาที่กำลังแคสต์ (เช่น "Tears of Steel")
- ระบุเว็บรีซีฟเวอร์ที่กำลังแคสต์อยู่ (เช่น "ห้องนั่งเล่น")
Notes
- Android เท่านั้น: คุณไม่สามารถใช้การแจ้งเตือนใน iOS หรือ Chrome ได้
- Android เวอร์ชัน 4.1 ขึ้นไปจำเป็นต้องใช้การควบคุมหน้าจอล็อก
- การควบคุมที่ต่างกันพร้อมใช้งานสำหรับระบบปฏิบัติการ Android เวอร์ชันต่างๆ และหน้าจอล็อกก็รองรับเพียงช่องข้อความเท่านั้น โดยทั่วไปแล้ว กราฟิกและภาพสัญลักษณ์จะอธิบายเนื้อหาได้ในทันทีมากกว่าข้อความ
- ปุ่มฮาร์ดแวร์การควบคุมระดับเสียงควรปรับระดับเสียงในแอปผู้ส่งเมื่อโทรศัพท์ล็อกอยู่
- การควบคุมต้องใช้คอมโพเนนต์เฟรมเวิร์ก:
MediaSession
หรือMediaSessionCompat
(สำหรับเวอร์ชัน 4.4 และ 4.3) หรือNotification
(สำหรับ 5.0 ขึ้นไป)
Android
การควบคุมหน้าจอล็อกของผู้ส่ง

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

ผู้ส่งกลับมาแคสต์ต่อ
แอปผู้ส่งที่เชื่อมต่อควรคืนค่าสถานะเชื่อมต่อหลังจากที่ยกเลิกการเชื่อมต่อโดยปริยาย (เช่น เครือข่ายหลุด อุปกรณ์เข้าสู่โหมดสลีป หรือแบตเตอรี่หมด)
ต้องระบุ
A หากแอปของผู้ส่งยกเลิกการเชื่อมต่อโดยปริยาย (ผู้ใช้ไม่ได้หยุดแคสต์หรือยกเลิกการเชื่อมต่ออย่างชัดเจน) เนื้อหาการแคสต์ควรเล่นต่อไปใน Web Receiver เมื่อรีสตาร์ทแอปหรือการเชื่อมต่อ แอปของผู้ส่งควรคืนค่าการเชื่อมต่อกับเว็บรีซีฟเวอร์ตราบใดที่เซสชันเว็บรีซีฟเวอร์ยังคงเป็นอยู่ในปัจจุบัน
B ปุ่ม "แคสต์" ควรคืนค่าเป็นสถานะเชื่อมต่อ
C หากผู้ใช้แตะปุ่ม "แคสต์" ก่อนที่ผู้ส่งจะเชื่อมต่อใหม่ รายการอุปกรณ์ Web Receiver จะปรากฏขึ้น เมื่อผู้ใช้เลือกเว็บรีซีฟเวอร์
ที่กำลังแคสต์อยู่ ตัวควบคุมขนาดเล็กหรือแบบขยายควรจะปรากฏในแอปผู้ส่ง
หมายเหตุ
แอป Web Receiver อาจยกเลิกการเชื่อมต่อและหยุดทำงานด้วยเนื่องจากปัญหาไฟฟ้าดับหรือความขัดข้องอื่นๆ นอกบริบท ซึ่งจะถือว่าเป็นการสิ้นสุดเซสชันปกติตามที่อธิบายไว้ในผู้ส่งหยุดแคสต์
Android
การเลือกแอป

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

คืนค่าการเชื่อมต่อการแคสต์แล้ว

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

iOS
การเลือกแอป

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

คืนค่าการเชื่อมต่อการแคสต์แล้ว

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

ผู้ส่งหยุดแคสต์
เนื้อหาที่แคสต์ไปยังทีวีจะเล่นต่อจนกว่าผู้ใช้จะเลือก "หยุดแคสต์" หรือผู้ส่งแคสต์รายการใหม่ เมื่อผู้ส่งหลายคนเชื่อมต่อกับเว็บรีซีฟเวอร์เดียวกัน แอปของผู้ส่งแต่ละรายควรมีปุ่มยกเลิกการเชื่อมต่อ (แทนปุ่มหยุดแคสต์) ในกล่องโต้ตอบแคสต์
ต้องระบุ
A เมื่อผู้ส่งหลายคนเชื่อมต่อกับเว็บรีซีฟเวอร์
การกด "หยุดแคสต์จากแอปผู้ส่งรายหนึ่ง" จะไม่ทำอะไรกับเว็บรีซีฟเวอร์และนำตัวควบคุม
ของ Cast และการแจ้งเตือนออกจากอุปกรณ์ของผู้ส่งรายนั้น อุปกรณ์ของผู้ส่งที่เชื่อมต่อรายอื่นๆ จะยังคงเชื่อมต่อ
โดยใช้ตัวควบคุม Cast ที่พร้อมใช้งาน
B เมื่อแอปของผู้ส่งยกเลิกการเชื่อมต่อโดยปริยาย (เช่น แบตเตอรี่ของอุปกรณ์ของผู้ส่งหมด หรือการเชื่อมต่อเครือข่ายของอุปกรณ์ของผู้ส่งกับเว็บรีซีฟเวอร์ลดลง) การไม่สามารถดำเนินการใดๆ กับเว็บรีซีฟเวอร์ และจะนำตัวควบคุมการแคสต์และการแจ้งเตือนออกจากอุปกรณ์ของผู้ส่ง แอปของผู้ส่งควรติดตามการขาดการเชื่อมต่อโดยนัยและพยายามเชื่อมต่อกับเว็บรีซีฟเวอร์อีกครั้งเมื่อแอปของผู้ส่งเปิดขึ้นอีกครั้ง
Android
กล่องโต้ตอบแคสต์ ปุ่มยกเลิกการเชื่อมต่อ

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

iOS
กล่องโต้ตอบแคสต์ ปุ่มยกเลิกการเชื่อมต่อ

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

Chrome
กล่องโต้ตอบแคสต์ ปุ่มยกเลิกการเชื่อมต่อ

เนื้อหาที่เว็บรีซีฟเวอร์กำลังเล่น

รูปภาพที่ใช้ในคู่มือการออกแบบนี้ได้รับความเอื้อเฟื้อจาก Blender Foundation ที่แชร์ภายใต้ลิขสิทธิ์หรือใบอนุญาตครีเอทีฟคอมมอนส์
- Elephant's Dream: (c) ลิขสิทธิ์ 2006, Blender Foundation / Netherlands Media Art Institute / www.elephantsdream.org
- Sintel: (ค) มูลนิธิ Blender ลิขสิทธิ์ | www.sintel.org
- Tears of Steel: (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org