ข้อความการเล่นสื่อ

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

ตามข้อกำหนดในการให้บริการเพิ่มเติมสำหรับนักพัฒนาแอปของ Google Cast SDK แอปพลิเคชันสื่อ Cast ต้องใช้ข้อความเหล่านี้ตามที่กำหนดไว้ที่นี่เพื่อควบคุมการเล่นสื่อในตัวรับ การดำเนินการดังกล่าวจะช่วยให้แอปสื่อมอบประสบการณ์การใช้งานที่สอดคล้องกันในทุกแพลตฟอร์ม และช่วยให้มั่นใจว่าแอปพลิเคชัน Cast จะรองรับกรณีการใช้งานใหม่ๆ ในอนาคต โครงสร้างเหล่านี้ยังรองรับข้อมูลที่กำหนดเอง ในกรณีที่เหมาะสม และแอปพลิเคชันอาจกำหนดข้อความของตนเองสำหรับคำสั่งที่ SDK ไม่รองรับ

เนมสเปซสำหรับข้อความการเล่นสื่อกำหนดเป็น urn:x-cast:com.google.cast.media

หมายเหตุ: ข้อความและโครงสร้างในข้อกำหนดนี้มีขนาดสูงสุดโดยนัยซึ่งกำหนดโดยขนาดสูงสุดของข้อความการรับส่ง ไม่มีขีดจำกัดสำหรับฟิลด์แต่ละรายการ ปัจจุบันขนาดสูงสุดของข้อความการรับส่งคือ 64 กิโลไบต์

โครงสร้างข้อมูลเนมสเปซที่พบบ่อย

ชุดข้อมูลโครงสร้างที่ใช้โดยอาร์ติแฟกต์เนมสเปซสื่อทั้งหมดจะกำหนดไว้ในเนมสเปซทั่วไป

รูปภาพ

นี่คือคำอธิบายของรูปภาพ ซึ่งรวมถึงข้อมูลเมตาจำนวนเล็กน้อยเพื่อให้แอปพลิเคชันของผู้ส่งเลือกรูปภาพได้ ทั้งนี้ขึ้นอยู่กับวิธีแสดงรูปภาพ

ความสูงและความกว้างเป็นตัวเลือกในรายการเดียวเท่านั้นในอาร์เรย์ของรูปภาพ เช่น หากมีการคืนสินค้าเพียง 1 รายการ ก็ไม่จำเป็นต้องระบุความสูงและความกว้าง แต่หากมีการคืนสินค้า 2 รายการ สินค้า 1 รายการต้องระบุความสูงและความกว้าง แต่ผู้ส่งอาจเลือกใช้ตัวเลือก "ค่าเริ่มต้น" หากไม่ต้องการใช้ตัวเลือกที่ส่งพร้อมพารามิเตอร์ที่เฉพาะเจาะจง

ชื่อ ประเภท คำอธิบาย
URL URI URI สำหรับรูปภาพ
height จำนวนเต็ม ไม่บังคับ ความสูงของรูปภาพ
width จำนวนเต็ม ไม่บังคับ ความกว้างของรูปภาพ

ระดับเสียง

ระดับเสียงของสตรีมสื่อ ใช้สำหรับเอฟเฟกต์เฟดอิน/เฟดเอาต์ในสตรีมสื่อ (หมายเหตุ: ระบบ จะเปลี่ยนระดับเสียงโดยใช้ API ของผู้ส่ง) ห้ามใช้ระดับเสียงของสตรีมร่วมกับแถบเลื่อนปรับระดับเสียงหรือปุ่มปรับระดับเสียงเพื่อควบคุมระดับเสียงของอุปกรณ์ ต้องส่งพารามิเตอร์ต่อไปนี้อย่างน้อย 1 รายการเพื่อเปลี่ยนระดับเสียงของสตรีม

ชื่อ ประเภท คำอธิบาย
ระดับ double ไม่บังคับ ระดับเสียงของสตรีมปัจจุบันเป็นค่าระหว่าง 0.0 ถึง 1.0 โดย 1.0 คือระดับเสียงสูงสุด
ปิดเสียง บูลีน ไม่บังคับ ไม่ว่าอุปกรณ์แคสต์จะปิดเสียงหรือไม่ โดยไม่ขึ้นอยู่กับระดับเสียง

โครงสร้างข้อมูลของเนมสเปซสื่อ

ข้อความเหล่านี้อธิบายสถานะของมัลติมีเดียเพลเยอร์ เนมสเปซคือ urn:x-cast:com.google.cast.media

MediaInformation

โครงสร้างข้อมูลนี้อธิบายสตรีมสื่อ

ชื่อ ประเภท คำอธิบาย
contentId สตริง ตัวระบุเฉพาะบริการของเนื้อหาที่ปัจจุบันมีเดียเพลเยอร์โหลดอยู่ นี่คือสตริงแบบอิสระและมีผลเฉพาะกับแอปพลิเคชัน ในกรณีส่วนใหญ่ URL นี้จะเป็น URL ของสื่อ แต่ผู้ส่งสามารถเลือกส่งสตริงที่ผู้รับตีความได้อย่างถูกต้อง ความยาวสูงสุด: 1,000
streamType enum
(string)

อธิบายประเภทของอาร์ติแฟกต์สื่อเป็นอย่างใดอย่างหนึ่งต่อไปนี้

  • NONE
  • BUFFERED
  • ไลฟ์สด
contentType สตริง ประเภทเนื้อหา MIME ของสื่อที่กำลังเล่น
ข้อมูลเมตา ออบเจ็กต์

ไม่บังคับ ออบเจ็กต์ข้อมูลเมตาของสื่อ ซึ่งเป็นหนึ่งในออบเจ็กต์ต่อไปนี้

ระยะเวลา double ไม่บังคับ ระยะเวลาของสตรีมที่กำลังเล่นเป็นวินาที
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันผู้ส่งหรือแอปพลิเคชันผู้รับ

GenericMediaMetadata

อธิบายอาร์ติแฟกต์สื่อทั่วไป

ชื่อ ประเภท คำอธิบาย
metadataType จำนวนเต็ม 0  (ค่าเดียว)
title สตริง ไม่บังคับ ชื่อที่สื่อความหมายของเนื้อหา โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
subtitle สตริง ไม่บังคับ คำบรรยายแทนเสียงที่สื่อความหมายของเนื้อหา โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
รูปภาพ รูปภาพ[] ไม่บังคับ อาร์เรย์ของ URL ไปยังรูปภาพที่เชื่อมโยงกับเนื้อหา ผู้ส่งระบุค่าเริ่มต้นของฟิลด์ได้ในข้อความโหลด ควรระบุขนาดที่แนะนำ
releaseDate สตริง (ISO 8601) ไม่บังคับ วันที่และเวลาตามมาตรฐาน ISO 8601 ที่เผยแพร่เนื้อหานี้ โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load

MovieMediaMetadata

อธิบายอาร์ติแฟกต์สื่อภาพยนตร์

ชื่อ ประเภท คำอธิบาย
metadataType จำนวนเต็ม 1  (ค่าเดียว)
title สตริง ไม่บังคับ ชื่อที่สื่อความหมายของเนื้อหา โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
subtitle สตริง ไม่บังคับ คำบรรยายแทนเสียงที่สื่อความหมายของเนื้อหา โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
studio สตริง ไม่บังคับ สตูดิโอที่เผยแพร่เนื้อหา โปรแกรมเล่นสามารถดึงข้อมูลสตูดิโอได้อย่างอิสระโดยใช้ content_id หรือผู้ส่งอาจระบุไว้ในข้อความโหลด
รูปภาพ รูปภาพ[] ไม่บังคับ อาร์เรย์ของ URL ไปยังรูปภาพที่เชื่อมโยงกับเนื้อหา ผู้ส่งระบุค่าเริ่มต้นของฟิลด์ได้ในข้อความโหลด ควรระบุขนาดที่แนะนำ
releaseDate สตริง (ISO 8601) ไม่บังคับ วันที่และเวลาตามมาตรฐาน ISO 8601 ที่เผยแพร่เนื้อหานี้ โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load

TvShowMediaMetadata

อธิบายอาร์ติแฟกต์สื่อของตอนรายการโทรทัศน์

ชื่อ ประเภท คำอธิบาย
metadataType จำนวนเต็ม 2  (ค่าเดียว)
seriesTitle สตริง ไม่บังคับ ชื่อที่สื่อความหมายของรายการทีวี โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
subtitle สตริง ไม่บังคับ คำบรรยายแทนเสียงแบบอธิบายของตอนในทีวี โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
ซีซัน จำนวนเต็ม ไม่บังคับ หมายเลขซีซันของรายการทีวี
ตอน จำนวนเต็ม ไม่บังคับ หมายเลขตอน (ในซีซัน) ของรายการทีวี
รูปภาพ รูปภาพ[] ไม่บังคับ อาร์เรย์ของ URL ไปยังรูปภาพที่เชื่อมโยงกับเนื้อหา ผู้ส่งระบุค่าเริ่มต้นของฟิลด์ได้ในข้อความโหลด ควรระบุขนาดที่แนะนำ
originalAirDate สตริง (ISO 8601) ไม่บังคับ วันที่และเวลา ISO 8601 ที่เผยแพร่ตอนนี้ เพลเยอร์สามารถดึงข้อมูล originalAirDate ได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุในข้อความ Load

MusicTrackMediaMetadata

อธิบายอาร์ติแฟกต์สื่อของแทร็กเพลง

ชื่อ ประเภท คำอธิบาย
metadataType จำนวนเต็ม 3  (ค่าเดียว)
albumName สตริง ไม่บังคับ อัลบั้มหรือคอลเล็กชันที่ดึงแทร็กนี้มา โปรแกรมเล่นสามารถดึงข้อมูล albumName ได้อย่างอิสระโดยใช้ content_id หรือผู้ส่งจะระบุข้อมูลนี้ในข้อความ Load ก็ได้
title สตริง ไม่บังคับ ชื่อของแทร็ก (เช่น ชื่อเพลง) โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
albumArtist สตริง ไม่บังคับ ชื่อศิลปินที่เกี่ยวข้องกับอัลบั้มที่มีแทร็กนี้ เพลเยอร์สามารถดึงข้อมูล albumArtist ได้อย่างอิสระโดยใช้ content_id หรือผู้ส่งอาจระบุข้อมูลนี้ในข้อความ Load
artist สตริง ไม่บังคับ ชื่อของศิลปินที่เชื่อมโยงกับแทร็กสื่อ เพลเยอร์สามารถดึงข้อมูลศิลปินได้โดยอิสระโดยใช้ content_id หรือผู้ส่งอาจระบุในข้อความ Load
composer สตริง ไม่บังคับ ชื่อผู้แต่งที่เชื่อมโยงกับแทร็กสื่อ โดยเพลเยอร์สามารถดึงข้อมูลผู้แต่งได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งจะระบุในข้อความ Load ก็ได้
trackNumber จำนวนเต็ม ไม่บังคับ หมายเลขแทร็กในอัลบั้ม
discNumber จำนวนเต็ม ไม่บังคับ หมายเลขของโวลุ่ม (เช่น ดิสก์) ของอัลบั้ม
รูปภาพ รูปภาพ[] ไม่บังคับ อาร์เรย์ของ URL ไปยังรูปภาพที่เชื่อมโยงกับเนื้อหา ผู้ส่งระบุค่าเริ่มต้นของฟิลด์ได้ในข้อความโหลด ควรระบุขนาดที่แนะนำ
releaseDate สตริง (ISO 8601) ไม่บังคับ วันที่และเวลาตามมาตรฐาน ISO 8601 ที่เผยแพร่เนื้อหานี้ โดยเพลเยอร์สามารถดึงข้อมูล releaseDate ได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งจะระบุข้อมูลนี้ในข้อความ Load ก็ได้

PhotoMediaMetadata

อธิบายอาร์ติแฟกต์สื่อภาพถ่าย

ชื่อ ประเภท คำอธิบาย
metadataType จำนวนเต็ม 4  (ค่าเดียว)
title สตริง ไม่บังคับ ชื่อภาพถ่าย โดยโปรแกรมเล่นสามารถดึงข้อมูลชื่อได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุชื่อในข้อความ Load
artist สตริง ไม่บังคับ ชื่อช่างภาพ เพลเยอร์สามารถดึงข้อมูลศิลปินได้โดยอิสระโดยใช้ content_id หรือผู้ส่งอาจระบุในข้อความ Load
location สตริง ไม่บังคับ สถานที่ที่ถ่ายภาพ เช่น "มาดริด สเปน" เพลเยอร์สามารถดึงข้อมูลตำแหน่งได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุตำแหน่งในข้อความ Load
latitude double ไม่บังคับ ค่าละติจูดทางภูมิศาสตร์ของสถานที่ที่ถ่ายภาพ โดยเพลเยอร์สามารถดึงละติจูดได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งจะระบุในข้อความ Load ก็ได้
longitude double ไม่บังคับ ค่าลองจิจูดทางภูมิศาสตร์ของสถานที่ที่ถ่ายภาพ โดยโปรแกรมเล่นสามารถดึงลองจิจูดได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุลองจิจูดในข้อความ Load
width จำนวนเต็ม ไม่บังคับ ความกว้างเป็นพิกเซลของภาพถ่าย โดยเพลเยอร์สามารถดึงข้อมูลความกว้างได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุความกว้างในข้อความ Load
height จำนวนเต็ม ไม่บังคับ ความสูงของภาพถ่ายเป็นพิกเซล โดยเพลเยอร์สามารถดึงความสูงได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งอาจระบุความสูงในข้อความ Load
creationDateTime สตริง (ISO 8601) ไม่บังคับ วันที่และเวลา ISO 8601 ที่ถ่ายภาพนี้ โดยเพลเยอร์สามารถดึงข้อมูล creationDateTime ได้ด้วยตนเองโดยใช้ content_id หรือผู้ส่งจะระบุข้อมูลนี้ในข้อความ Load ก็ได้

MediaStatus

อธิบายสถานะปัจจุบันของอาร์ติแฟกต์สื่อที่เกี่ยวข้องกับเซสชัน

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสที่ไม่ซ้ำกันสำหรับการเล่นเซสชันนี้ รหัสนี้ตั้งค่าโดยผู้รับที่ LOAD และใช้เพื่อระบุอินสแตนซ์การเล่นที่เฉพาะเจาะจงได้ ตัวอย่างเช่น การเล่นเพลง "Wish you were here" 2 ครั้งภายในเซสชันเดียวกันแต่ละครั้งจะมี mediaSessionId ที่ไม่ซ้ำกัน
media MediaInformation ไม่บังคับ (สำหรับข้อความสถานะ) คำอธิบายแบบเต็มของเนื้อหาที่กำลังเล่น จะแสดงในข้อความสถานะก็ต่อเมื่อ MediaInformation มีการเปลี่ยนแปลง
playbackRate จำนวนลอยตัว ระบุว่าเวลาของสื่อกำลังดำเนินไปหรือไม่ และดำเนินไปด้วยอัตราเท่าใด ซึ่งไม่ขึ้นอยู่กับสถานะของเพลเยอร์เนื่องจากเวลาของสื่อจะหยุดได้ในทุกสถานะ 1.0 คือเวลาปกติ ส่วน 0.5 คือสโลว์โมชัน
playerState enum (สตริง)

อธิบายสถานะของเพลเยอร์เป็นค่าใดค่าหนึ่งต่อไปนี้

  • IDLE  ยังไม่ได้โหลดเพลเยอร์
  • กำลังเล่น  เพลเยอร์กำลังเล่นเนื้อหาอยู่
  • บัฟเฟอร์  เพลเยอร์อยู่ในโหมดเล่นแต่ไม่ได้เล่นเนื้อหาอยู่ (currentTime ไม่เปลี่ยนแปลง)
  • หยุดชั่วคราว  เพลเยอร์หยุดชั่วคราว
idleReason enum (สตริง)

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

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

Flag ที่อธิบายคำสั่งสื่อที่มัลติมีเดียเพลเยอร์รองรับ

  • 1 << 0  หยุดชั่วคราว
  • 1 << 1  ค้นหา
  • 1 << 2  ปริมาณการสตรีม
  • 1 << 3  ปิดเสียงสตรีม
  • 1 << 4  ข้ามไปข้างหน้า (เลิกใช้งานแล้ว)
  • 1 << 5  ข้ามไปก่อนหน้า (เลิกใช้งานแล้ว)
  • 1 << 6  คิวถัดไป
  • 1 << 7  คิวเพลงก่อนหน้า
  • 1 << 8  สับเปลี่ยนคิว
  • 1 << 9  ข้ามโฆษณา
  • 1 << 10  เล่นซ้ำทั้งหมดในคิว
  • 1 << 11  เล่นซ้ำรายการเดียวในคิว
  • 1 << 12  แก้ไขแทร็ก
  • 1 << 13  ความเร็วในการเล่น
  • 1 << 14  ชอบ
  • 1 << 15  ไม่ชอบ
  • 1 << 16  ติดตาม
  • 1 << 17  เลิกติดตาม

โดยจะอธิบายการรวมกันเป็นผลรวม เช่น หยุดชั่วคราว + ค้นหา + ระดับเสียงสตรีม + ปิดเสียง == 15

ระดับเสียง ระดับเสียง ระดับเสียงสตรีม
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ

คำสั่งจากผู้ส่งถึงผู้รับ

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

โหลด

โหลดเนื้อหาใหม่ลงในมีเดียเพลเยอร์

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง LOAD (ค่าเท่านั้น)
media MediaInformation ข้อมูลเมตา (รวมถึง contentId) ของสื่อที่จะโหลด
เล่นอัตโนมัติ บูลีน

ไม่บังคับ (ค่าเริ่มต้นคือ true) หากระบุพารามิเตอร์การเล่นอัตโนมัติ เครื่องเล่นสื่อจะเริ่มเล่นเนื้อหาเมื่อโหลด แม้ว่าจะไม่ได้ระบุการเล่นอัตโนมัติไว้ แต่การติดตั้งใช้งานมีเดียเพลเยอร์อาจเลือกที่จะเริ่มเล่นทันที หากเริ่มเล่นแล้ว สถานะเพลเยอร์ในการตอบกลับควรตั้งค่าเป็น BUFFERING มิฉะนั้นควรตั้งค่าเป็น PAUSED

currentTime double ไม่บังคับ วินาทีตั้งแต่ต้นเนื้อหา หากเนื้อหาเป็นเนื้อหาที่กำลังเผยแพร่และไม่ได้ระบุตำแหน่ง สตรีมจะเริ่มที่ตำแหน่งที่กำลังเผยแพร่
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง
โหลดไม่สำเร็จ
ยกเลิกการโหลด

หยุดชั่วคราว

หยุดเล่นเนื้อหาปัจจุบันชั่วคราว ทริกเกอร์การแจ้งเตือนเหตุการณ์ STATUS ไปยังแอปพลิเคชันของผู้ส่งทั้งหมด

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสของเซสชันสื่อที่จะหยุดชั่วคราว
requestId จำนวนเต็ม รหัสของคำขอที่จะใช้เพื่อเชื่อมโยงคำขอ/คำตอบ
ประเภท สตริง หยุดชั่วคราว (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง

ค้นหา

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

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสของเซสชันสื่อที่ตั้งค่าตำแหน่งของสตรีม
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง SEEK (ค่าเท่านั้น)
resumeState enum (สตริง)

ไม่บังคับ หากไม่ได้ตั้งค่านี้ สถานะการเล่นจะไม่เปลี่ยนแปลง และจะใช้ค่าต่อไปนี้

  • PLAYBACK_START  บังคับให้สื่อเริ่มเล่น
  • PLAYBACK_PAUSE  บังคับให้หยุดสื่อชั่วคราว
currentTime double ไม่บังคับ วินาทีตั้งแต่ต้นเนื้อหา หากเนื้อหาเป็นเนื้อหาที่กำลังเผยแพร่และไม่ได้ระบุตำแหน่ง สตรีมจะเริ่มที่ตำแหน่งที่กำลังเผยแพร่
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง

หยุด

หยุดเล่นเนื้อหาปัจจุบัน ทริกเกอร์การแจ้งเตือนเหตุการณ์ STATUS ไปยังแอปพลิเคชันของผู้ส่งทั้งหมด หลังจากคำสั่งนี้ ระบบจะไม่โหลดเนื้อหาอีกต่อไปและจะทำให้ mediaSessionId ไม่ถูกต้อง

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสของเซสชันสื่อสำหรับเนื้อหาที่จะหยุด
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง STOP (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง

เล่น

เริ่มเล่นเนื้อหาที่โหลดด้วยการเรียกใช้ load โดยจะเล่นต่อจากตำแหน่งเวลาปัจจุบัน

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสของเซสชันสื่อสำหรับเนื้อหาที่จะเล่น
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง PLAY (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง

รับสถานะ

เรียกข้อมูลสถานะสื่อ

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม ไม่บังคับ รหัสเซสชันสื่อของสื่อที่ควรแสดงสถานะสื่อ หากไม่ได้ระบุ ระบบจะแสดงสถานะสำหรับรหัสเซสชันสื่อทั้งหมด
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง GET_STATUS (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ส่งข้อความ MediaStatus ไปยังผู้ส่งที่ขอ ไม่มี ไม่มี ไม่มี

SetVolume

ตั้งค่าระดับเสียงของสตรีมสื่อ ใช้สำหรับเอฟเฟกต์เฟดอิน/เฟดเอาต์ในสตรีมสื่อ (หมายเหตุ: ระดับเสียงของตัวรับสัญญาณจะเปลี่ยนโดยใช้ผู้ส่งบนเว็บ setVolume) ห้ามใช้ระดับเสียงของสตรีมร่วมกับแถบเลื่อนปรับระดับเสียงหรือ ปุ่มปรับระดับเสียงเพื่อควบคุมระดับเสียงของอุปกรณ์ การเปลี่ยนแปลงระดับเสียงของสตรีมจะไม่ ทริกเกอร์ UI ใดๆ ในตัวรับ

ชื่อ ประเภท คำอธิบาย
mediaSessionId จำนวนเต็ม รหัสเซสชันสื่อของสื่อที่มีการเปลี่ยนแปลงระดับเสียงของสตรีม
requestId จำนวนเต็ม รหัสของคำขอเพื่อเชื่อมโยงคำขอและการตอบกลับ
ประเภท สตริง VOLUME (ค่าเท่านั้น)
ระดับเสียง ระดับเสียง ระดับเสียงสตรีม
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันของผู้ส่ง
การตอบกลับ ทริกเกอร์ ออกอากาศ ข้อผิดพลาด
ไม่มี การเปลี่ยนแปลงสถานะของตัวรับ ข้อความการเปลี่ยนแปลงสถานะสื่อ สถานะเพลเยอร์ไม่ถูกต้อง

ข้อความจากผู้รับถึงผู้ส่ง

ผู้รับจะส่งข้อความ 2 ประเภท ได้แก่

  • ข้อผิดพลาด: ข้อความ Unicast ที่ส่งเมื่อมีการตอบกลับข้อผิดพลาดไปยังคำขอของผู้ส่ง
  • สถานะ: ข้อความประกาศ
    • ผลลัพธ์ของการดำเนินการที่ผู้ส่งเป็นผู้เริ่ม จะมี requestId ของคำขอที่ทำให้เกิดการเปลี่ยนแปลง
    • เกิดขึ้นเอง: เช่น เนื่องจากการเปลี่ยนแปลงที่แอปพลิเคชันตัวรับสัญญาณทริกเกอร์ RequestId จะเป็น 0

ข้อผิดพลาด: สถานะเพลเยอร์ไม่ถูกต้อง

ส่งเมื่อดำเนินการตามคำขอของผู้ส่งไม่ได้เนื่องจากเพลเยอร์อยู่ในสถานะที่ไม่ถูกต้อง เช่น หากแอปพลิเคชันยังไม่ได้สร้างองค์ประกอบสื่อ

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสของคำขอที่ทำให้เกิดข้อผิดพลาดนี้
ประเภท สตริง INVALID_PLAYER_STATE (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ

ข้อผิดพลาด: โหลดไม่สำเร็จ

ส่งเมื่อคำขอโหลดไม่สำเร็จ สถานะเพลเยอร์จะเป็น IDLE

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสของคำขอที่ทำให้เกิดข้อผิดพลาดนี้
ประเภท สตริง LOAD_FAILED (ค่าเท่านั้น)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ

ข้อผิดพลาด: ยกเลิกการโหลด

ส่งเมื่อมีการยกเลิกคำขอโหลด (ได้รับคำขอโหลดที่ 2)

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสของคำขอที่ทำให้เกิดข้อผิดพลาดนี้
ประเภท สตริง LOAD_CANCELLED (ค่าเดียว)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ

ข้อผิดพลาด: คำขอไม่ถูกต้อง

ส่งเมื่อคำขอไม่ถูกต้อง (เช่น ประเภทคำขอที่ไม่รู้จัก)

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสของคำขอที่ทำให้เกิดข้อผิดพลาดนี้
ประเภท สตริง INVALID_REQUEST (ค่าเท่านั้น)
เหตุผล Enum (สตริง)

ค่า:

  • INVALID_COMMAND  ไม่รองรับคำสั่ง
  • DUPLICATE_REQUESTID  รหัสคำขอไม่ซ้ำกัน (ผู้รับกำลังประมวลผลคำขอที่มีรหัสเดียวกัน)
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ

สถานะสื่อ

ส่งหลังจากมีการเปลี่ยนแปลงสถานะหรือหลังจากคำขอสถานะสื่อ ระบบจะส่งเฉพาะออบเจ็กต์ MediaStatus ที่มีการเปลี่ยนแปลงหรือมีการขอเท่านั้น

ชื่อ ประเภท คำอธิบาย
requestId จำนวนเต็ม รหัสที่ใช้เพื่อเชื่อมโยงการตอบกลับสถานะนี้กับคำขอที่ทำให้เกิดการตอบกลับ หรือ 0 หากข้อความสถานะเกิดขึ้นเอง (ไม่ได้เกิดจากคำขอของผู้ส่ง) แอปพลิเคชันของผู้ส่งจะสร้างรหัสคำขอที่ไม่ซ้ำกันโดยการเลือกหมายเลขสุ่มและเพิ่มขึ้นอย่างต่อเนื่อง (จะไม่ใช้ 0)
ประเภท สตริง MEDIA_STATUS (ค่าเท่านั้น)
สถานะ MediaStatus[] อาร์เรย์ของออบเจ็กต์สถานะสื่อ หมายเหตุ: ระบบจะแสดงองค์ประกอบสื่อใน MediaStatus ก็ต่อเมื่อมีการเปลี่ยนแปลงเท่านั้น
customData ออบเจ็กต์ ไม่บังคับ Blob ข้อมูลเฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันตัวรับ