วิดีโอสด

ข้อมูลมัลติมีเดีย เช่น วิดีโอสด อาจเป็นประโยชน์ต่อผู้รับสายโทรฉุกเฉินในสถานการณ์วิกฤต เช่น

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

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

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

  • ประสบการณ์การใช้งานวิดีโอสดที่ราบรื่นโดยไม่ต้องมีสิทธิ์ที่ซับซ้อน
  • ประสบการณ์การใช้งานที่สอดคล้องกันสำหรับผู้ใช้ Android ทุกคน

วิธีการทำงาน

ขั้นตอนวิดีโอสดของ ELS ซึ่งแสดงวิธีที่การโทรหรือส่งข้อความฉุกเฉินจากผู้ใช้ Android จะทริกเกอร์ ELS รวมถึงโทเค็นวิดีโอสดใหม่ เมื่อซอฟต์แวร์รับสายตรวจพบโทเค็นนี้และส่งกลับไปยังผู้ใช้ Android ในข้อความ SMS พร้อมลิงก์ไปยังสตรีมวิดีโอ WebRTC แบบสด ELS ก็จะมอบประสบการณ์การใช้งานวิดีโอแบบผสานรวมได้

คู่มือการผสานรวม

1. รับบอล

หลังจากอัปเดตการกำหนดค่า ELS เพื่อเปิดใช้ฟีเจอร์วิดีโอสดแล้ว คุณจะเริ่มได้รับฟิลด์ live_video_token ในข้อความ ELS ของ HTTPS เมื่อโทรศัพท์ของผู้ใช้รองรับฟีเจอร์นี้ ฟีเจอร์นี้รองรับอุปกรณ์ Android 8 Oreo ขึ้นไป

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

  • อักขระแบบสุ่ม 6 ตัว
  • ตัวอักษรและตัวเลขคละกัน
  • ตัวพิมพ์ใหญ่

2. คำเชิญ

เมื่อตรวจพบโทเค็น ให้ส่งผ่านโทเค็นใน URL เช่น พารามิเตอร์ URL ใน SMS ที่มีลิงก์ไปยังวิดีโอสตรีม เช่น https://example.com/live?token=AFZ791 ELS จะตรวจหาข้อความ SMS ขาเข้า ระหว่างการโทรหรือส่งข้อความฉุกเฉิน และมองหาโทเค็นวิดีโอสดที่ตรงกัน ในกรณีนี้คือ AFZ791

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

3. ประสบการณ์การใช้งานวิดีโอสด

ลิงก์วิดีโอสดต้องรองรับประสบการณ์การใช้งาน 2 แบบต่อไปนี้

ก. ประสบการณ์การใช้งานบนเว็บเบราว์เซอร์

ซึ่งอาจรวมถึง UI ที่กำหนดเองของคุณเอง เช่น

  • ปุ่ม
  • คำขอตำแหน่ง
  • กล่องโต้ตอบและความยินยอม

ข. ประสบการณ์การใช้งานแบบผสานรวม

โดยคุณต้องทำดังนี้

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

การตรวจจับ

คุณตรวจหาโหมดผสานรวมได้โดยสังเกต User Agent ที่มี Live

ตัวอย่าง User Agent ในประสบการณ์การใช้งานเบราว์เซอร์บนอุปกรณ์เคลื่อนที่ Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36

ตัวอย่าง User Agent ในประสบการณ์ WebView แบบผสานรวม: Mozilla/5.0 (Linux; Android 10; K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/125.000 Mobile Safari/537.36 Live/25.23.10

ใน JavaScript คุณทำได้โดยใช้โค้ดต่อไปนี้

if (navigator.userAgent.includes("Live")) {
    <!-- Render integrated experience -->
} else {
    <!-- Render your your own custom UI -->
}

สิทธิ์

  • คุณควรขอสิทธิ์เข้าถึงกล้องตามปกติผ่าน JavaScript สำหรับวิดีโอสดที่ผสานรวม
  • ระบบจะปฏิเสธสิทธิ์เข้าถึงตำแหน่ง เสียง และสิทธิ์อื่นๆ โดยอัตโนมัติ

ฮุก

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

ชื่อฟังก์ชัน รีเทิร์น คำอธิบาย
กล้อง switchCamera Promise<bool> เมื่อโหลด ให้เริ่มด้วยกล้องหลัง (โหมดหัน = สภาพแวดล้อม) เนื่องจากมีประโยชน์มากที่สุดในสถานการณ์ฉุกเฉิน สลับระหว่างกล้องที่พร้อมใช้งานทุกครั้งที่มีการเรียกใช้ฟังก์ชัน ส่งคืน true เมื่อเปลี่ยนกล้องสำเร็จ
ไฟฉาย toggleFlashlight Promise<bool> เปิดและปิดไฟฉายทุกครั้งที่มีการเรียกใช้ฟังก์ชัน ส่งคืน true เมื่อเปิด/ปิดไฟฉายสำเร็จ
ไฟฉาย isFlashlightAvailable bool แสดง true หรือ false ขึ้นอยู่กับความพร้อมใช้งานของไฟฉายสำหรับโหมดกล้องปัจจุบัน หลังจากเรียกใช้ switchCamera แล้ว จะถือว่าค่าที่ส่งคืนแสดงถึงสถานะความพร้อมใช้งานที่อัปเดตทันทีที่ Promise ของ switchCamera แก้ไข
ไฟฉาย isFlashlightOn bool แสดง true เมื่อไฟฉายเปิดอยู่ และ false ในกรณีอื่นๆ หลังจากเรียกใช้ toggleFlashlight แล้ว ให้ถือว่าค่าที่แสดงผลจะแสดงสถานะไฟฉายที่อัปเดตทันทีที่ Promise ของ toggleFlashlight แก้ไข