# API Reference

เมื่อสร้าง ByteArkPlayerFragment แล้ว สามารถเรียกใช้งาน API ของ Player ผ่าน interface ByteArkPlayerFragmentController ได้โดยตรง

# Setup methods

Method Description
startService() เริ่มต้น Player Service
releaseService() ปลดปล่อย Player Service และทรัพยากรที่ใช้
addFragmentEventListener(listener: PlayerFragmentListener) เพิ่ม Listener สำหรับรับ Event จาก Player
removeFragmentEventListener(listener: PlayerFragmentListener) ลบ Listener ที่เพิ่มไว้
addCompanionAdSlot(slot: ByteArkCompanionAdSlot) เพิ่ม Companion Ad slot

# Media controller

Method Description
openMedia(item: ByteArkPlayerItem) เปิดวิดีโอเพื่อเริ่มเล่น
openPlaylist(playlist: ByteArkPlayerPlaylist) เปิด Playlist สำหรับเล่นต่อเนื่อง
getPlayerItem(): ByteArkPlayerItem? คืนค่า ByteArkPlayerItem ของวิดีโอที่กำลังเล่นอยู่
getPlaylist(): ByteArkPlayerPlaylist? คืนค่า Playlist ปัจจุบัน
getCurrentQueue(): List<ByteArkPlayerItem> คืนค่ารายการ Queue ปัจจุบัน
selectQueueItem(item: ByteArkPlayerItem) เลือกวิดีโอใน Queue เพื่อเริ่มเล่น
addItemToQueue(item: ByteArkPlayerItem) เพิ่มวิดีโอเข้าใน Queue
removeQueueItem(item: ByteArkPlayerItem) ลบวิดีโอออกจาก Queue

# Playback controller

Method Description
play() เริ่มเล่นวิดีโอ
pause() หยุดเล่นชั่วคราว
seekTo(position: Long) กระโดดไปที่ตำแหน่งเวลาที่ระบุ (มิลลิวินาที)
seekForward() กระโดดไปข้างหน้าตาม withSeekTime
seekBackward() กระโดดถอยหลังตาม withSeekTime
next() เล่นวิดีโอถัดไปใน Playlist/Queue
previous() เล่นวิดีโอก่อนหน้าใน Playlist/Queue

# Tracks & quality

Method Description
getCurrentAudio(): ByteArkAudio? คืนค่า Audio track ปัจจุบัน
getAudios(): List<ByteArkAudio> คืนค่ารายการ Audio track ทั้งหมด
setAudio(audio: ByteArkAudio) เลือก Audio track
getCurrentSubtitle(): ByteArkSubtitle? คืนค่าซับไตเติ้ลปัจจุบัน
getSubtitles(): List<ByteArkSubtitle> คืนค่ารายการซับไตเติ้ลทั้งหมด
setSubtitle(subtitle: ByteArkSubtitle) เลือกซับไตเติ้ล
getCurrentResolution(): ByteArkResolution? คืนค่าความละเอียดปัจจุบัน
getResolutions(): List<ByteArkResolution> คืนค่ารายการความละเอียดที่เลือกได้
setResolution(resolution: ByteArkResolution) เลือกความละเอียด

# Playback speed

Method Description
getAvailablePlaybackSpeeds(): List<Float> คืนค่ารายการความเร็วที่ผู้ชมเลือกได้
getCurrentPlaybackSpeed(): Float คืนค่าความเร็วปัจจุบัน
setPlaybackSpeed(speed: Float) กำหนดความเร็วในการเล่น

# Time & status

Method Description
getCurrentTime(): Long เวลาปัจจุบันของวิดีโอ (มิลลิวินาที)
getDuration(): Long ความยาวทั้งหมดของวิดีโอ (มิลลิวินาที)
isReady(): Boolean Player พร้อมเล่นหรือไม่
isPlaying(): Boolean กำลังเล่นอยู่หรือไม่
isBuffering(): Boolean กำลัง Buffer อยู่หรือไม่
isSeeking(): Boolean กำลัง Seek อยู่หรือไม่
isEnded(): Boolean วิดีโอเล่นจบหรือยัง
isMuted(): Boolean ปิดเสียงอยู่หรือไม่
isFullScreen(): Boolean อยู่ในโหมด Full Screen หรือไม่
isInPictureInPicture(): Boolean อยู่ในโหมด PiP หรือไม่

# UI controller

Method Description
toggleFullScreen() สลับโหมด Full Screen
togglePictureInPicture() สลับโหมด Picture-in-Picture
showControls() แสดงแถบควบคุม
hideControls() ซ่อนแถบควบคุม