# Errors Reference
เมื่อเกิด Error ในการเล่นวิดีโอ Player จะส่ง Callback onPlaybackError(error) ผ่าน ByteArkPlayerListener ส่วน Error ที่เกิดจากระบบโฆษณาจะใช้ onAdsError(error)
# การรับ Error
final listener = ByteArkPlayerListener(
onPlaybackError: (ByteArkPlayerPlaybackErrorData error) {
debugPrint("Playback error: code=${error.code}, message=${error.message}");
// จัดการ Error เช่น แสดง Dialog หรือ Snackbar
},
onAdsError: (ByteArkPlayerAdsErrorData error) {
debugPrint("Ads error: ${error.message}");
// โดยปกติ Ads error จะไม่หยุดวิดีโอหลัก
},
);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# ประเภทของ Error
Error ของ Player ใน Flutter SDK ส่วนใหญ่ถูกส่งต่อมาจาก Native SDK (ExoPlayer บน Android, AVPlayer บน iOS) ซึ่งมีประเภทดังนี้
| ประเภท | คำอธิบาย |
|---|---|
| Source error | ไม่สามารถโหลด/อ่าน Manifest ของวิดีโอ (URL ผิด, เซิร์ฟเวอร์ตอบกลับ 4xx/5xx) |
| Network error | ไม่สามารถเชื่อมต่อเครือข่ายได้ |
| Decoder error | อุปกรณ์ไม่สามารถถอดรหัสวิดีโอ/เสียงในรูปแบบที่ได้รับ |
| DRM error | ไม่สามารถขอ License ของ Widevine/FairPlay ได้ |
| Renderer error | เกิดข้อผิดพลาดในการแสดงผลวิดีโอ |
# แนวทางการจัดการ Error
- Source / Network error: แสดงข้อความ Error ที่ผู้ชมเข้าใจได้ และเปิดทางให้กดเล่นใหม่
- DRM error: ตรวจสอบ
ByteArkDrmconfiguration ของByteArkPlayerItemรวมถึง License URL และ Custom headers - Ads error: โดยปกติจะไม่ทำให้วิดีโอหลักหยุด แนะนำให้ Log error ไว้สำหรับวิเคราะห์