# Event Listeners Reference

ByteArkPlayerFragment ส่ง Event ของ Player ผ่าน interface PlayerFragmentListener ซึ่งสามารถ Implement เพื่อรับ Callback แต่ละประเภทได้

# การใช้งาน

private var mFragmentListener = object : PlayerFragmentListener {
  override fun onPlayerReady() {
    // Player พร้อมเล่น
  }
  override fun onPlay() {
    // เริ่มเล่นวิดีโอ
  }
  // ... callback อื่นๆ ตามต้องการ
}
mPlayerFragment.addFragmentEventListener(mFragmentListener)
1
2
3
4
5
6
7
8
9
10
11
12
13

# Lifecycle events

Callback Description
onPlayerReady() Player ถูกสร้างและพร้อมรับวิดีโอแล้ว
onLoad() เริ่มโหลดวิดีโอ
onMediaReady() วิดีโอพร้อมเล่น
onFirstPlay() เริ่มเล่นวิดีโอเป็นครั้งแรก
onPlay() เริ่ม/กลับมาเล่นวิดีโอ
onPause() หยุดเล่นชั่วคราว
onStop() หยุดเล่น
onEnded() เล่นวิดีโอจบ

# Buffer & seek events

Callback Description
onBufferStart() เริ่ม Buffer
onBufferStop() Buffer เสร็จสิ้น
onSeekStart() เริ่ม Seek
onSeekEnd() Seek เสร็จสิ้น

# Progress events

Callback Description
onProgressUpdate(position: Long, bufferedPosition: Long) อัปเดตเวลาปัจจุบันและ Buffer position
onTimelineUpdate(duration: Long, isLive: Boolean) อัปเดตข้อมูล Timeline และสถานะ Live
onPlaybackRateChange() ผู้ชมเปลี่ยนความเร็วการเล่น
onPlayerItemChange(item, isPlaylist, isQueue, index) เปลี่ยนวิดีโอใน Playlist/Queue

# UI events

Callback Description
onFullScreenEnter() เข้าสู่โหมด Full Screen
onFullScreenExit() ออกจากโหมด Full Screen
onPipModeEnter() เข้าสู่โหมด Picture-in-Picture
onPipModeExit() ออกจากโหมด Picture-in-Picture
onPlayerSizeChange(width: Int, height: Int) ขนาดของ Player View เปลี่ยน
onVideoSizeChange(width: Int, height: Int) ขนาดของวิดีโอเปลี่ยน

# Subtitle & storyboard events

Callback Description
onCues(cues: List<Cue>) ได้รับข้อมูลซับไตเติ้ลใหม่จาก ExoPlayer
onStoryBoardLoaded(storyBoard: StoryBoard) โหลด Storyboard สำเร็จ

# Ads events

Callback Description
onAdsRequest() ส่งคำขอโฆษณา
onAdsStart() เริ่มเล่นโฆษณา
onAdsEnd() จบโฆษณาแต่ละชิ้น
onAdsComplete() โฆษณาทั้งหมดเล่นเสร็จ
onAdsBreakStart() เริ่ม Ads break
onAdsBreakEnd() จบ Ads break
onAdsClicked() ผู้ชมคลิกโฆษณา
onAdsSkipped() ผู้ชมกดข้ามโฆษณา
onAdsDestroy() โฆษณาถูกทำลาย
onAdsError(errorMessage: String?) เกิด Error ในการเล่นโฆษณา

# Error event

Callback Description
onError(errorCode: String, errorMessage: String) เกิด Error ในการเล่นวิดีโอ