# ซับไตเติ้ล (Subtitle)

ByteArk Player SDK for iOS รองรับซับไตเติ้ลที่ฝังมากับ HLS manifest โดยผู้ชมสามารถเลือกซับไตเติ้ลที่ต้องการได้ผ่าน UI ของ Player หรือผ่าน API

# เลือกซับไตเติ้ลผ่าน API

// ดูซับไตเติ้ลทั้งหมด
let subtitles: [ByteArkPlayerMediaTrack] = player.subtitleTracks
// ซับไตเติ้ลปัจจุบัน
let current: ByteArkPlayerMediaTrack? = player.subtitleTrack
// เลือกซับไตเติ้ล
player.setSubtitleTrack(subtitles[0])
// ปิดซับไตเติ้ล
player.setSubtitleTrack(nil)
1
2
3
4
5
6
7
8
9
10
11

# รับ Event เมื่อซับไตเติ้ลเปลี่ยน

override func playbackSubtitleTrackChanged(
  player: ByteArkPlayer,
  subtitleTrack: ByteArkPlayerMediaTrack?
) {
  super.playbackSubtitleTrackChanged(player: player, subtitleTrack: subtitleTrack)
  // ซับไตเติ้ลถูกเปลี่ยน
}
1
2
3
4
5
6
7

# การแสดงผลซับไตเติ้ล

การตั้งค่าการแสดงผล 3 รายการนี้กำหนดผ่าน ByteArkPlayerConfigBuilder และถูกกำหนดตายตัวตอนที่สร้าง Config โดยควบคุม วิธีการแสดงผล ซับไตเติ้ล ไม่ใช่ แทร็กที่เล่น (แทร็กใช้ setSubtitleTrack(_:))

let config = try ByteArkPlayerConfigBuilder(licenseKey: "<YOUR_LICENSE_KEY>")
  .item(item)
  .customSubtitle(true)                 // แสดงซับไตเติ้ลด้วย Overlay ของ SDK เอง
  .subtitleSize(.large)                 // ขนาดตัวอักษรซับไตเติ้ล
  .subtitlePaddingBottomPercentage(12)  // ยกซับไตเติ้ลขึ้นจากขอบล่าง
  .build()
1
2
3
4
5
6
Builder method Type Default Description
.customSubtitle(_:) Bool false แสดง Cue ด้วย Overlay ของ SDK เอง แทนการวาด Caption แบบ Native ของ Engine ใช้ได้กับ Playback engine แบบ AVFoundation (ค่าเริ่มต้น)
.subtitleSize(_:) ByteArkPlayerSubtitleSize .medium ขนาดตัวอักษรซับไตเติ้ล คิดเป็นเปอร์เซ็นต์ของความสูงเฟรมวิดีโอ ทำให้ซับไตเติ้ลขยายตาม Player ไม่ใช่ตามหน้าจอ
.subtitlePaddingBottomPercentage(_:) Int 10 ยกซับไตเติ้ลขึ้นจากขอบล่าง คิดเป็นเปอร์เซ็นต์ของความสูงเฟรมวิดีโอ ใช้กับทั้งซับไตเติ้ลแบบ Native และ Custom

ค่าของ ByteArkPlayerSubtitleSize จากเล็กสุดไปใหญ่สุด: .minimum, .extraTiny, .tiny, .extraSmall, .small, .medium, .large, .extraLarge, .maximum