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

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

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

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

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

โครงสร้างข้อมูลเนมสเปซทั่วไป

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

รูปภาพ

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

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

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

ระดับเสียง

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

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

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

ข้อความเหล่านี้จะอธิบายสถานะของโปรแกรมเล่นสื่อ เนมสเปซคือ urn:x-cast:com.google.cast.media

MediaInformation

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

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

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

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

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

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

GenericMediaMetadata

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

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

MovieMediaMetadata

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

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

TvShowMediaMetadata

อธิบายอาร์ติแฟกต์ของสื่อที่เป็นตอนของรายการทีวี

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

MusicTrackMediaMetadata

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

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

PhotoMediaMetadata

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

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

MediaStatus

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

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

อธิบายสถานะของโปรแกรมเล่นเป็นแบบใดแบบหนึ่งต่อไปนี้

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

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

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

แฟล็กที่อธิบายว่าโปรแกรมเล่นสื่อรองรับคำสั่งสื่อใดบ้าง

  • 1  หยุดชั่วคราว
  • 2  ค้นหา
  • 4  ระดับเสียงสตรีม
  • 8  ปิดเสียงสตรีม
  • 16  ข้ามไปข้างหน้า
  • 32  ข้ามย้อนกลับ

ชุดค่าผสมจะอธิบายว่าเป็นข้อมูลสรุป ตัวอย่างเช่น Pause+Seek+StreamVolume+Mute == 15

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

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

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

โหลด

โหลดเนื้อหาใหม่ลงในโปรแกรมเล่นสื่อ

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

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

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

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

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

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

เรียกดู

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

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

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

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

หยุด

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

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

เล่น

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

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

รับสถานะ

เรียกสถานะสื่อ

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

SetVolume

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

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

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

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

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

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

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

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

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

ส่งเมื่อคำขอโหลดล้มเหลว สถานะโปรแกรมเล่นจะเป็น IDLE

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

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

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

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

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

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

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

ค่า:

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

สถานะสื่อ

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

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