# การใช้งาน ByteArk Player SDK for Android
หน้านี้แสดง Walkthrough การตั้งค่า ByteArkPlayerFragment ในแอปของคุณ สำหรับรายละเอียดของแต่ละ Option / API / Event ดูเอกสารอ้างอิงตามลิงก์ในแต่ละขั้นตอน
# 1. Setup View Container
Setup View Container สำหรับ attach ByteArkPlayerFragment โดย Optional ว่าสามารถสร้าง ViewGroup Container สำหรับ Companion Ads ได้อีกด้วย
private fun setupView() {
enableEdgeToEdge()
mBinding = ActivityMainBinding.inflate(layoutInflater)
ViewCompat.setOnApplyWindowInsetsListener(mBinding.main) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
mFragmentContainer = mBinding.fragmentContainer
mCompanionAdsSlotContainer = mBinding.companionAdSlotContainer
setContentView(mBinding.root)
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2. สร้าง ByteArkPlayerFragment
สร้าง ByteArkPlayerBuilder พร้อมกำหนดความสามารถที่ต้องการ จากนั้นสร้าง Setting object สำหรับแต่ละความสามารถ และส่งเข้า ByteArkPlayerFragment.createInstance(...)
private fun setupPlayerFragment() {
// สร้าง Player Builder
val playerBuilder = ByteArkPlayerBuilder.Builder()
.withContext(this)
.withAutoPlay()
.withControl()
.withFullScreenButton()
.withPictureInPicture()
.withSeekButtons()
.withSeekTime(10)
.withShareOption()
.withSettingButton()
.build()
// Companion Ad slot (optional)
val companionAdSlot = ByteArkPlayerFragment.createCompanionAdSlot(
mCompanionAdsSlotContainer, 728, 90
)
// Setting objects ของแต่ละ Integration
val chromeCastSetting = ByteArkPlayerFragment.createChromeCastSetting(true)
val lighthouseSetting = ByteArkPlayerFragment.createLighthouseSetting(true, "PROJECT_ID", true)
val nielsenSetting = ByteArkPlayerFragment.createNielsenSetting(
"APP_ID", "APP_NAME", "th", "", "DEBUG"
)
val playbackSetting = ByteArkPlayerFragment.createPlaybackSetting(
listOf(0.5F, 1.0F, 1.5F, 2.0F), 1F
)
// สร้าง Fragment Instance
mPlayerFragment = ByteArkPlayerFragment.createInstance(
playerBuilder,
mFragmentListener,
companionAdSlot,
nielsenSetting,
playbackSetting,
lighthouseSetting,
chromeCastSetting
)
supportFragmentManager.beginTransaction()
.replace(mFragmentContainer.id, mPlayerFragment)
.commit()
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ดู Options สำหรับรายการ Builder method ทั้งหมดและ Setting object แต่ละชนิด
# 3. สร้าง Fragment Listener
Listener ใช้สำหรับรับ Event จาก Player เช่น เริ่ม/หยุดเล่น เกิด Error เปลี่ยน Picture-in-Picture mode ฯลฯ ตัวอย่างด้านล่างคือ Callback ที่ใช้บ่อยที่สุด
private var mFragmentListener = object : PlayerFragmentListener {
override fun onPlayerReady() {
// Player พร้อมเล่น
}
override fun onPlay() {
// เริ่มเล่นวิดีโอ
}
override fun onPause() {
// หยุดเล่นชั่วคราว
}
override fun onEnded() {
// วิดีโอเล่นจบ
}
override fun onError(errorCode: String, errorMessage: String) {
// จัดการ Error ในการเล่นวิดีโอ
}
// ... Callback อื่นๆ ตามต้องการ
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
จากนั้นเพิ่ม Listener เข้ากับ Player Fragment
mPlayerFragment.addFragmentEventListener(mFragmentListener)
ดู Event Listeners Reference สำหรับ Callback ทั้งหมด (~30 ตัว) ที่ใช้รับ Event ของ Player, Ads, Buffer, Subtitle, Storyboard, ฯลฯ
# 4. เปิดวิดีโอและเรียกใช้งาน Player API
สร้าง ByteArkPlayerItem แล้วเรียก openMedia(...) เพื่อเริ่มเล่น
val playerItem = ByteArkPlayerItemBuilder.Builder()
.withMediaId("VIDEO_ID")
.withTitle("Big Buck Bunny")
.withUrl("https://example.com/playlist.m3u8")
.withPosterImage("https://example.com/poster.jpg")
.build()
mPlayerFragment.openMedia(playerItem)
2
3
4
5
6
7
8
ตัวอย่างการเรียก Player API ที่ใช้บ่อย
mPlayerFragment.play()
mPlayerFragment.pause()
mPlayerFragment.seekTo(60_000L) // ไปที่นาทีที่ 1:00
mPlayerFragment.setPlaybackSpeed(1.5F) // เล่นที่ความเร็ว 1.5x
mPlayerFragment.toggleFullScreen()
mPlayerFragment.togglePictureInPicture()
2
3
4
5
6
ดู API Reference สำหรับ Method ทั้งหมดของ
ByteArkPlayerFragmentControllerรวมถึง Track/Resolution/Subtitle/Queue management