# Errors Reference
เมื่อเกิด Error ในการเล่นวิดีโอ Player จะส่ง Callback playbackError(player:, error:) ผ่าน ByteArkPlayerPlaybackDelegate หรือ Notification .error ผ่าน ByteArkPlayerPlaybackEngineNotification
# การรับ Error ผ่าน Delegate
func playbackError(player: ByteArkPlayer, error: NSError) {
print("Error \(error.code): \(error.localizedDescription)")
// จัดการ Error ตาม error.code
}
1
2
3
4
2
3
4
# ประเภทของ Error
Error ส่วนใหญ่มาจาก AVPlayer (ซึ่งเป็น Playback engine เริ่มต้นของ ByteArk Player) และมีประเภทดังนี้
| ประเภท | คำอธิบาย |
|---|---|
| Source error | ไม่สามารถโหลด/อ่าน Manifest ของวิดีโอ (URL ผิด, เซิร์ฟเวอร์ตอบกลับ 4xx/5xx) |
| Network error | ไม่สามารถเชื่อมต่อเครือข่ายได้ |
| Decoder error | อุปกรณ์ไม่สามารถถอดรหัสวิดีโอ/เสียงในรูปแบบที่ได้รับ |
| DRM error | ไม่สามารถขอ License ของ FairPlay ได้ (Application Certificate, SPC/CKC ผิด) |
| Renderer error | เกิดข้อผิดพลาดในการแสดงผลวิดีโอ |
| Unexpected error | Error ที่ไม่สามารถระบุประเภทได้ |
Note
สำหรับรายละเอียดของ Error code ของ AVPlayer ดูที่ AVFoundation Error Domains (opens new window)
# Error จาก Ads Plugin
Ads Plugin (Google IMA SDK) ส่ง Error แยกผ่าน ByteArkPlayerAdsPluginDelegate.adsLoaderFailed(...) หรือ callback ของ Plugin โดยเฉพาะ — ดู การเล่นโฆษณา (Advertisement)
# แนวทางการจัดการ Error
- Source / Network error: แสดงข้อความ Error ที่ผู้ชมเข้าใจได้ และเปิดทางให้กดเล่นใหม่
- Decoder error: ตรวจสอบ Codec ของวิดีโอ — iOS รองรับ HLS/H.264/HEVC โดยส่วนใหญ่
- DRM error: ตรวจสอบการ implement
ByteArkPlayerDrmDataSourceและ response ของ License server (ดู Apple FairPlay) - Ads error: โดยปกติจะไม่ทำให้วิดีโอหลักหยุด แนะนำให้ Log error ไว้สำหรับวิเคราะห์