Google Cast สำหรับอุปกรณ์เสียงรองรับเฉพาะการเล่นเสียงเท่านั้น คู่มือนี้จะอธิบายถึงวิธีเพิ่มประสิทธิภาพแอปพลิเคชันแคสต์สำหรับอุปกรณ์เฉพาะเสียง และใช้ประโยชน์จากความต้องการใช้งานหน่วยความจำ, CPU และแบนด์วิดท์เครือข่ายที่ลดลง
แอปที่รองรับ Google Cast สำหรับเสียงจะต้องพิจารณาสิ่งต่อไปนี้
- Google Cast สำหรับอุปกรณ์เสียงจะไม่แสดงวิดีโอหรือกราฟิก อย่างไรก็ตาม อุปกรณ์เสียงจำนวนมากมีจอแสดงผลสำหรับแสดงข้อมูลเมตา เช่น สถานะการเล่น (กำลังเล่นหรือหยุดชั่วคราว) และความคืบหน้า แอปพลิเคชันของคุณต้องไม่แสดงข้อมูลผู้ใช้ที่สำคัญดังกล่าวเฉพาะบนผู้รับเท่านั้น ข้อมูลสำคัญและอินเทอร์เฟซผู้ใช้ส่วนใหญ่ต้องแสดงต่อผู้ส่ง
- หากต้องการเรียกใช้แอปพลิเคชันเว็บรีซีฟเวอร์อย่างถูกต้อง อุปกรณ์ Google Cast สำหรับเสียงจะต้องแสดงผลกราฟิกแม้จะไม่แสดงก็ตาม เนื่องจากอุปกรณ์อาจไม่รองรับการดำเนินการเกี่ยวกับกราฟิกที่มีการเร่งฮาร์ดแวร์ แอปพลิเคชันตัวรับสัญญาณจึงควรหลีกเลี่ยงการดำเนินการที่ต้องใช้กราฟิกมาก เช่น การไล่ระดับสี การหมุน การผสมอัลฟ่า และการวาดวัตถุขนาดใหญ่อีกครั้ง เช่น แถบความคืบหน้ามากกว่า 1 ครั้งต่อวินาที
- Google Cast สำหรับอุปกรณ์เสียงรองรับเฉพาะเนื้อหาที่ได้รับการคุ้มครองจาก Widevine for Digital Rights Management (DRM) เท่านั้น
- สำหรับอุปกรณ์ Google Cast สำหรับอุปกรณ์เสียงส่วนใหญ่ แอปพลิเคชันของผู้ส่งจะควบคุมช่วงระดับเสียงแบบเต็มของอุปกรณ์ (เช่น ลำโพง) ไม่ใช่เพียงระดับเสียงของอินพุตแหล่งเสียงไปยังทีวี เช่นเดียวกับอุปกรณ์ Chromecast
- นอกเหนือจากการควบคุมการเล่นด้วยอุปกรณ์ของผู้ส่ง (เช่น โทรศัพท์) แอปอาจต้องมีไว้สำหรับการควบคุมการเล่นด้วยตัวควบคุมของอุปกรณ์เอง เช่น รีโมตคอนโทรล ปุ่มบนอุปกรณ์ หรือแอปพลิเคชันระยะไกลภายนอก
- Google Cast สำหรับอุปกรณ์เสียงอาจรองรับการแสดงข้อมูลเมตาของเนื้อหาด้วยหน้าจอ LCD ขนาดเล็ก, เอาต์พุต HDMI (สำหรับซาวด์บาร์หรือตัวรับสัญญาณวิดีโอเสียง) หรือแอปพลิเคชันระยะไกลภายนอก ทั้งนี้ขึ้นอยู่กับ UI ของอุปกรณ์โดยเฉพาะ
การพัฒนา
ขั้นตอนแรกในการพัฒนาแอปพลิเคชัน Cast ให้รองรับ Google Cast สำหรับเสียง คือการพัฒนาแอปพลิเคชัน Cast สำหรับเสียง และตรวจสอบว่าแอปทำงานบน Chromecast ได้ เอกสารนี้จะถือว่าคุณได้พัฒนาและทดสอบแอปดังกล่าว
แอปอาจรองรับทั้งอุปกรณ์แบบเสียงและวิดีโอและอุปกรณ์แบบเสียงเท่านั้น ระบบจำเป็นต้องทราบว่ากำลังแคสต์ไปยังเครื่องใดเครื่องหนึ่งเมื่อเทียบกับอีกเครื่องหนึ่ง และดำเนินมาตรการเพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์ที่ดีที่สุดภายใต้สถานการณ์นั้นๆ
ตัวอย่างเช่น แอปวิดีโอและเสียงคู่ (เช่น แอปพลิเคชันการเล่นไฟล์ในเครื่อง/NAS) ควรเปิดใช้การแคสต์ไปยังอุปกรณ์เสียงเท่านั้นเพื่อรองรับการเล่นไฟล์เสียง แต่แอปไม่ควรอนุญาตให้ผู้ใช้ส่งไฟล์วิดีโอไปยังอุปกรณ์เสียงเท่านั้น แอปสามารถใช้ API ความสามารถของอุปกรณ์สำหรับผู้ส่งที่อธิบายไว้ด้านล่างเพื่อพิจารณาเนื้อหาที่เหมาะสมกับอุปกรณ์
เพื่อให้แอปรองรับ Google Cast สำหรับเสียงได้ แอปของคุณต้องมีคุณสมบัติดังต่อไปนี้
รองรับเสียงเท่านั้น: การสตรีมไฟล์เพลงและไฟล์เสียง วิทยุ ฯลฯ สื่อที่สตรีมไปยังแอป Web Receiver ต้องไม่ใช่สตรีมวิดีโอ นอกจากนี้ ให้หลีกเลี่ยงการสตรีมกราฟิกและรูปภาพเพื่อปรับปรุงเวลาเปิดแอปและใช้หน่วยความจำ โปรดดูหลักเกณฑ์การใช้หน่วยความจำด้านล่าง
ทำงานตามที่คาดไว้ใน Cast สำหรับอุปกรณ์เสียงเช่นเดียวกับ Chromecast ปกติ
ความสามารถของอุปกรณ์
แอปรู้ว่าแอปทำงานอยู่ในอุปกรณ์เฉพาะเสียงหรือไม่ โดยใช้ API ความสามารถของอุปกรณ์ ที่พร้อมใช้งานจากตัวอุปกรณ์เองหรือผ่าน API ของผู้ส่งหรือตัวรับ
ส่วนหัว HTTP ของอุปกรณ์
ส่วนหัว HTTP ของ CAST-DEVICE-CAPABILITIES
ที่ได้จากอุปกรณ์แคสต์ระหว่างการเปิดแอปพลิเคชันจะอธิบายความสามารถของอุปกรณ์ อุปกรณ์จะส่งคำขอที่มีส่วนหัวนี้ไปยังเซิร์ฟเวอร์ที่โฮสต์แอป Web Receiver โดยส่วนหัวสำหรับอุปกรณ์ที่มีเฉพาะเสียงจะอธิบายความสามารถของอุปกรณ์ด้วย CAST-DEVICE-CAPABILITIES: {"display_supported":false}
เมื่อเซิร์ฟเวอร์ได้รับคำขอจากอุปกรณ์ คุณสามารถใช้ข้อมูลในส่วนหัวนี้เพื่อเปลี่ยนเส้นทางคำขอไปยังแอป Web Receiver ซึ่งเพิ่มประสิทธิภาพสำหรับอุปกรณ์เสียง
API ตัวรับสัญญาณเว็บ
คุณสามารถรับออบเจ็กต์ความสามารถของอุปกรณ์แบบเดียวกันได้โดยเรียกใช้ CastReceiverManager.getDeviceCapabilities()
เมื่อแอป Web Receiver โหลดขึ้นมา
ดูความสามารถของอุปกรณ์สำหรับข้อมูลเพิ่มเติม
API สำหรับผู้ส่ง
API ของผู้ส่งแคสต์แต่ละรายการมีข้อมูลความสามารถของอุปกรณ์ด้วยเช่นกัน ข้อมูลเหล่านี้ช่วยให้แอปของผู้ส่งกำหนดประเภทสื่อที่จะส่งไปยังผู้รับได้ หากแอปรองรับทั้งเสียงและวิดีโอ อาจหลีกเลี่ยงการส่งเนื้อหาวิดีโอไปยังอุปกรณ์ที่มีเฉพาะเสียง นอกจากนี้ แอปยังควบคุมระดับเสียงได้โดยใช้วิธีที่เหมาะกับอุปกรณ์มากที่สุด ตามที่อธิบายไว้ในรายการตรวจสอบการออกแบบ ดู API ความสามารถของอุปกรณ์ต่อไปนี้สำหรับผู้ส่ง
- Android: CastDevice.hasCapabilities
- iOS: deviceCapabilities
- Chrome: chrome.cast.Capability
หลักเกณฑ์การใช้งานหน่วยความจำ
แอป Web Receiver ที่ทำงานบนอุปกรณ์เสียงต้องจัดการการใช้งานหน่วยความจำดังนี้
- โปรดหลีกเลี่ยงการดาวน์โหลดหรือใช้เนื้อหารูปภาพหรือกราฟิกใดๆ เพื่อลดปริมาณหน่วยความจำและร่นระยะเวลาจนกว่าวิดีโอจะเริ่มเล่น
- เมื่อใช้ส่วนขยายแหล่งที่มาของสื่อ (MSE) แอปพลิเคชันต้องจำกัดบัฟเฟอร์ของสตรีมไว้ที่ 2 MB หากใช้ไลบรารี Media Player (MPL) ขนาดบัฟเฟอร์ของสตรีมของแอปพลิเคชันจะกำหนดโดย MPL แล้ว
- เมื่อใช้ HTMLMediaElement ขนาดบัฟเฟอร์สตรีมของแอปพลิเคชันจะกำหนดโดย Chrome โดยอิงตามอัตราสตรีม จำกัดอัตราบิตของเสียงไว้ที่ 2 เมกะบิตต่อวินาที ซึ่งรองรับตัวแปลงรหัสทั้งหมดที่อธิบายไว้ในสื่อที่รองรับ (สูงสุด 48KHz/16 บิต)
การควบคุมระดับเสียง
สำหรับอุปกรณ์ Google Cast สำหรับเสียงส่วนใหญ่ แอปพลิเคชันของผู้ส่งจะควบคุมช่วงระดับเสียงเต็มของอุปกรณ์ ไม่ใช่เพียงระดับเสียงอินพุตแหล่งที่มาของเสียง เช่นเดียวกับอุปกรณ์ Chromecast ซึ่งหมายความว่าการเพิ่มการเปลี่ยนแปลงระดับเสียงต้องน้อยลงในแอปพลิเคชันที่มีเฉพาะเสียง ดูเอกสารต่อไปนี้สำหรับหลักเกณฑ์ในการควบคุมระดับเสียงในแอป
- การควบคุมระดับเสียงของผู้ส่ง ในรายการตรวจสอบการออกแบบ
- ปริมาณผู้ส่งของ Android
- วอลุ่มของผู้ส่ง iOS
- วอลุ่มของผู้ส่งเว็บ
การควบคุมอุปกรณ์
Google Cast สำหรับอุปกรณ์เสียงอาจมีส่วนควบคุมการเล่นของตัวเอง (เช่น ปุ่ม รีโมต) รายการเหล่านี้ใช้ข้อความการเล่นสื่อที่กำหนดไว้สำหรับเนมสเปซ urn:x-cast:com.google.cast.media
ตามที่อธิบายไว้ในข้อความการเล่นสื่อเพื่อควบคุมการเล่นในแอปพลิเคชันตัวรับสัญญาณ แอปพลิเคชันตัวรับสัญญาณของคุณต้องรองรับข้อความการเล่นสื่อเหล่านี้ เพื่อให้รองรับส่วนควบคุมการเล่นของอุปกรณ์
นอกจากนี้ แอปผู้ส่งควรรองรับข้อความจากผู้รับถึงผู้ส่ง เพื่อที่ว่าหากผู้ใช้เปลี่ยนสถานะสื่อด้วยระบบควบคุมอุปกรณ์ แอปผู้ส่งจะได้รับข้อความสถานะจากผู้รับและอัปเดต UI ตามความเหมาะสม
การแสดงผลของอุปกรณ์
อุปกรณ์ Google Cast สำหรับเสียงอาจมีหน้าจอ LCD อยู่ในอุปกรณ์หรือแอปพลิเคชันควบคุมเฉพาะอุปกรณ์ที่แสดงข้อมูลเมตาของสื่อ แอปผู้รับต้องให้ข้อมูลเมตานี้สำหรับแทร็กเสียงทั้งหมด และตรวจสอบว่าเสียงดังกล่าวสอดคล้องกับเนื้อหาที่เล่นอยู่เพื่อให้ข้อมูลเมตาแสดงได้อย่างเหมาะสมในจอแสดงผล หากแอปพลิเคชันใช้ข้อมูลเมตาที่กำหนดเอง แอปพลิเคชันต้องระบุข้อมูลเมตาเสียงมาตรฐาน (ชื่อแทร็ก ชื่อศิลปิน ชื่ออัลบั้ม ฯลฯ) ตามที่อธิบายไว้สำหรับแต่ละแพลตฟอร์มด้านล่างด้วย
ผู้รับจะได้รับข้อมูลเมตาจากผู้ส่งเมื่อโหลดสื่อ ในแอปผู้ส่งโดยมีคำสั่งให้โหลดสื่อบนเครื่องรับ คุณต้องระบุช่องที่อธิบายไว้ด้านล่าง เพื่อให้ข้อมูลเมตาปรากฏบนอุปกรณ์ Google Cast สำหรับเสียง ใช้ API ต่อไปนี้
Android
MediaMetadata
ที่มีMEDIA_TYPE_MUSIC_TRACK
และiOS
GCKMediaMetadata
ที่มีGCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
และ:Chrome
MediaInfo
พร้อมMusicTrackMediaMetadata
และรายการต่อไปนี้
หากแอป Cast จัดการคิวสื่อบนตัวรับหรือในระบบคลาวด์ เว็บรีซีฟเวอร์ต้องประกาศการอัปเดตสถานะสื่อใดๆ โดยใช้เนมสเปซ urn:x-cast:com.google.cast.media
เพื่อซิงโครไนซ์ผู้ส่งทุกคน
การลงทะเบียน
คุณต้องลงทะเบียนอุปกรณ์ Google Cast สำหรับเสียงเพื่อทดสอบและลงทะเบียนแอปให้รองรับ Google Cast สำหรับอุปกรณ์เสียงโดยใช้แผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google Cast SDK
- โปรดดูอุปกรณ์สำหรับข้อมูลเพิ่มเติม เกี่ยวกับการลงทะเบียนอุปกรณ์
- คุณต้องเลือกช่องทำเครื่องหมายรองรับการแคสต์ไปยังอุปกรณ์เสียงเท่านั้น เมื่อลงทะเบียนแอปพลิเคชันเพื่ออนุญาตให้แอปค้นพบ Google Cast สำหรับอุปกรณ์เสียง โปรดดูหัวข้อลงทะเบียนแอปพลิเคชัน
สำหรับแอปที่ยังไม่ได้เผยแพร่ เช่น แอปที่ใช้สำหรับการทดสอบ คุณต้องเลือกตัวเลือกให้รองรับอุปกรณ์แบบเสียงเท่านั้นด้วย เพื่อให้แอปค้นพบอุปกรณ์ที่ใช้เฉพาะเสียงได้
Google Cast สำหรับเสียง 2.0
Google Cast for Audio (GC4A) 2.0 คือแพลตฟอร์มเสียงแคสต์รุ่นใหม่ที่ออกแบบมาเพื่อกำหนดเป้าหมายไปยังอุปกรณ์ที่มีหน่วยความจำต่ำ เพื่อขยายระบบนิเวศของอุปกรณ์ที่สามารถสตรีมเนื้อหาของคุณได้
นักพัฒนาแอปเสียงต้องทดสอบแอปใน GC4A 2.0 คุณสามารถทดสอบแอป Cast สำหรับ GC4A 2.0 บนลำโพง Bose เวอร์ชันที่ใช้งานจริงได้ (เช่น Bose Smart Speaker 500)
โปรดติดต่อ gc4a-support-external@google.com หากต้องการความช่วยเหลือในการตั้งค่าสำหรับการทดสอบ หรือใช้ลำโพง Bose ไม่ได้ หากต้องการแก้ไขข้อบกพร่องของแอป Google ขอแนะนำให้ใช้ตัวบันทึกการแก้ไขข้อบกพร่องของแคสต์