# DVR

สำหรับวิดีโอแบบถ่ายทอดสด (Live) ByteArk Player SDK for iOS รองรับ DVR ซึ่งช่วยให้ผู้ชมสามารถ Seek ย้อนกลับภายในช่วงเวลาของ Live (Live window) และกระโดดกลับไปยังจุด Live ล่าสุดได้ โดย DVR เป็นฟีเจอร์แบบ Opt-in และใช้ได้เฉพาะกับวิดีโอแบบ Live เท่านั้น

# เปิดใช้งาน DVR

เปิด DVR ด้วย .dvr(enabled:) บน ByteArkPlayerConfigBuilder โดยค่าเริ่มต้นจะปิดอยู่

let config = try ByteArkPlayerConfigBuilder(licenseKey: "<YOUR_LICENSE_KEY>")
  .item(item)
  .dvr(enabled: true)
  .build()
1
2
3
4

DVR จะทำงานเฉพาะกับ Live stream ที่ Seek ได้และมี Live window ยาวพอที่จะผ่านเกณฑ์ขั้นต่ำ (Engagement threshold) เมื่อทำงาน ตัวควบคุมจะปลดล็อกให้ Seek ได้ทั่วทั้ง Window แทนที่จะล็อกอยู่ที่จุด Live

# Seek ภายใน Live window

// Seek ถอยหลังตามระยะเวลาที่ตั้งไว้
player.seekBackward()
// Seek ไปข้างหน้าตามระยะเวลาที่ตั้งไว้
player.seekForward()
// กลับไปยังจุด Live ล่าสุด (ไม่มีผลเมื่อ DVR ไม่ทำงาน)
player.seekToLive()
1
2
3
4
5
6
7
8

# ตรวจสอบสถานะ DVR

isDVRActive บอกว่า DVR กำลังทำงานอยู่หรือไม่ และ dvrWindow ให้ข้อมูลช่วงเวลาที่ Seek ได้

// DVR กำลังทำงานอยู่หรือไม่
let active: Bool = player.isDVRActive
// ช่วงเวลาที่ Seek ได้ หรือ nil เมื่อ DVR ไม่ทำงาน
if let window = player.dvrWindow {
  let start = window.start        // ตำแหน่งเก่าสุดที่ Seek ได้ (วินาที)
  let end = window.end            // จุด Live ล่าสุด (วินาที)
  let duration = window.duration  // ความยาวที่ Seek ได้ของ Window (วินาที)
}
1
2
3
4
5
6
7
8
9

# API

API คำอธิบาย
.dvr(enabled:) ตัวเลือกใน Config builder สำหรับเปิด DVR ให้กับ Live stream (ค่าเริ่มต้น false)
func seekToLive() กลับไปยังจุด Live ล่าสุด (ไม่มีผลเมื่อ DVR ไม่ทำงาน)
func seekForward() Seek ไปข้างหน้าตามระยะเวลาที่ตั้งไว้
func seekBackward() Seek ถอยหลังตามระยะเวลาที่ตั้งไว้
var isDVRActive: Bool { get } DVR กำลังทำงานอยู่หรือไม่ (เปิดใช้งาน, เป็น Live stream และ Window ผ่านเกณฑ์)
var dvrWindow: DVRWindow? { get } ช่วงเวลาที่ Seek ได้ หรือ nil เมื่อ DVR ไม่ทำงาน

# DVRWindow

Property Type คำอธิบาย
start TimeInterval ตำแหน่งเก่าสุดที่ Seek ได้ (ด้านหลังของ Window)
end TimeInterval ตำแหน่งใหม่สุดที่ Seek ได้ (จุด Live)
duration TimeInterval ความยาวที่ Seek ได้ของ Window (end - start)