# API Reference

เมื่อสร้าง ByteArkPlayerController แล้ว คุณสามารถเรียกใช้งาน API ของ Player ผ่าน Controller instance ได้โดยตรง

# Lifecycle methods

Method Description
setListener(ByteArkPlayerListener? newListener) กำหนด/เปลี่ยน Listener สำหรับรับ Event
attach() ผูก Controller กับ ByteArkPlayer widget (ถูกเรียกอัตโนมัติเมื่อ widget mount)
detach() ยกเลิกการผูก Controller (ถูกเรียกอัตโนมัติเมื่อ widget unmount)
dispose() ปลดปล่อย Listener และทรัพยากรของ Controller ใช้ใน State.dispose()

# Playback controller

Method Description
play() เริ่มเล่นวิดีโอ
pause() หยุดเล่นวิดีโอชั่วคราว
togglePlayback() สลับสถานะ Play/Pause
seekTo(int position) กระโดดไปที่ตำแหน่งเวลาที่ระบุ (วินาที)
seekForward() กระโดดไปข้างหน้าตาม seekTime ของ Config
seekBackward() กระโดดถอยหลังตาม seekTime ของ Config

# ข้อมูลการเล่น

Method Description
getCurrentTime() เวลาที่กำลังเล่นอยู่ปัจจุบัน หน่วยเป็นวินาที (คืนค่า 0 หากยังไม่มีค่า)
currentPosition() ตำแหน่งการเล่นปัจจุบัน หน่วยเป็นวินาที
getDuration() ความยาวทั้งหมดของวิดีโอ หน่วยเป็นวินาที (คืนค่า 0 หากยังไม่มีค่า)

# Media controller

Method Description
switchMediaSource(ByteArkPlayerConfig config) เปลี่ยนวิดีโอที่เล่นโดยส่ง Config ใหม่

# Tracks & quality

Method Description
getAudios() อ่านรายการ Audio track ที่มีให้เลือก
getCurrentAudio() อ่าน Audio track ที่กำลังเลือกอยู่
setAudio(ByteArkPlayerMediaTrack track) เลือก Audio track
getSubtitles() อ่านรายการซับไตเติ้ลที่มีให้เลือก
getCurrentSubtitle() อ่านซับไตเติ้ลที่กำลังเลือกอยู่
setSubtitle(ByteArkPlayerMediaTrack? track) เลือกซับไตเติ้ล (ส่ง null เพื่อปิด)
getResolutions() อ่านรายการความละเอียดวิดีโอที่มีให้เลือก
getCurrentResolution() อ่านความละเอียดวิดีโอที่กำลังเลือกอยู่
setResolution(ByteArkPlayerMediaTrack track) เลือกความละเอียดวิดีโอ

# Playback speed

Method Description
getAvailablePlaybackSpeeds() อ่านรายการความเร็วในการเล่นที่รองรับ
getCurrentPlaybackSpeed() อ่านความเร็วในการเล่นปัจจุบัน
setPlaybackSpeed(double speed) กำหนดความเร็วในการเล่น (เช่น 0.5, 1.0, 1.5, 2.0)

# UI controller

Method Description
toggleFullScreen() สลับโหมด Full Screen

# ByteArkPlayerMediaTrack

Getter/Setter ของ Audio, Subtitle และ Resolution ทำงานกับ ByteArkPlayerMediaTrack

Field Type Description
id String? รหัสของ Track
name String? ชื่อที่แสดงของ Track
language String? รหัสภาษาของ Track