แอปพลิเคชันผู้ส่ง 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 (สตริง) |
อธิบายประเภทของอาร์ติแฟกต์สื่อเป็นอย่างใดอย่างหนึ่งต่อไปนี้
|
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 (สตริง) | อธิบายสถานะของโปรแกรมเล่นเป็นแบบใดแบบหนึ่งต่อไปนี้
|
idleReason | enum (สตริง) | ไม่บังคับ หาก PlayerState เป็น IDLE และทราบเหตุผลที่เปลี่ยนเป็น IDLE ระบบจะระบุพร็อพเพอร์ตี้นี้ หากโปรแกรมเล่นอยู่ในสถานะ IDLE เนื่องจากเพิ่งเริ่มเล่น จะไม่มีการให้พร็อพเพอร์ตี้นี้ หากโปรแกรมเล่นอยู่ในสถานะอื่น ก็ไม่ควรระบุพร็อพเพอร์ตี้นี้ ระบบจะใช้ค่าต่อไปนี้
|
currentTime | คู่ | ตำแหน่งปัจจุบันของโปรแกรมเล่นสื่อตั้งแต่เริ่มต้นเนื้อหาเป็นวินาที หากนี่เป็นเนื้อหาสตรีมแบบสด ฟิลด์นี้จะแสดงเวลาเป็นวินาทีนับจากจุดเริ่มต้นของเหตุการณ์ที่โปรแกรมเล่นควรทราบ |
supportedMediaCommands | แฟล็ก | แฟล็กที่อธิบายว่าโปรแกรมเล่นสื่อรองรับคำสั่งสื่อใดบ้าง
ชุดค่าผสมจะอธิบายว่าเป็นข้อมูลสรุป ตัวอย่างเช่น 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 (สตริง) | ไม่บังคับ หากไม่ได้ตั้งค่าไว้ สถานะการเล่นจะไม่เปลี่ยนแปลง ระบบจะใช้ค่าต่อไปนี้
|
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 (สตริง) | ค่า:
|
customData | ออบเจ็กต์ | ไม่บังคับ Blob เฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันฝั่งผู้รับ |
สถานะสื่อ
ส่งหลังจากเปลี่ยนสถานะหรือหลังคำขอสถานะสื่อ ระบบจะส่งเฉพาะออบเจ็กต์ MediaStatus ที่มีการเปลี่ยนแปลงหรือมีคำขอเท่านั้น
ชื่อ | Type | คำอธิบาย |
---|---|---|
requestId | จำนวนเต็ม | รหัสที่ใช้เพื่อเชื่อมโยงการตอบกลับสถานะนี้กับคำขอที่สร้างคำขอนั้น หรือ 0 หากข้อความสถานะเกิดขึ้นเองไม่ได้ (ไม่ได้เรียกใช้โดยคำขอของผู้ส่ง) แอปพลิเคชันผู้ส่งจะสร้างรหัสคำขอที่ไม่ซ้ำกันโดยการเลือกหมายเลขสุ่มและจะเพิ่มรหัสอย่างต่อเนื่อง (โดยจะไม่ใช้ 0) |
ประเภท | สตริง | MEDIA_STATUS (ค่าเท่านั้น) |
สถานะ | MediaStatus[] | อาร์เรย์ของออบเจ็กต์สถานะสื่อ หมายเหตุ: ระบบจะแสดงผลองค์ประกอบสื่อใน MediaStatus ก็ต่อเมื่อมีการเปลี่ยนแปลงเท่านั้น |
customData | ออบเจ็กต์ | ไม่บังคับ Blob เฉพาะแอปพลิเคชันที่กำหนดโดยแอปพลิเคชันฝั่งผู้รับ |