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