에러 대응
재생/라이선스/DRM 오류는 플레이어 위에 i18n 오버레이로 표시됩니다. 컨트롤러 패턴에서는 lastError / licenseError 를 관찰해 직접 대응할 수 있습니다.
에러 코드
| 코드 | 의미 |
|---|---|
| E0001 | access_key 무효 / 비결제 |
| E0002 | 권한 없음 |
| E0003 | 인증 / 네트워크 |
| E0005 | 라이선스 무효 |
| E0006 | 월 무료 사용량 초과 |
| E0007 | 미지원 포맷 |
| E0010 | DASH 미지원 (iOS) |
| E0011 | DRM 토큰 오류 |
| E0012 | 라이선스 서버 통신 실패 |
| E0013 | FairPlay 인증서 검증 실패 |
| E0014 | 화면 캡처 / 녹화 감지 |
| E0017 | Standard 플랜 필요 |
에러 관찰
컨트롤러의 @Published 에러 상태를 관찰하거나 Combine events 퍼블리셔로 error 이벤트를 구독합니다.
// @Published 상태 관찰
player.lastError // PlayerError?
player.licenseError // VPELicenseError?
player.isLicenseValidated // Bool
// Combine 이벤트 구독
player.events
.sink { event in
if event.type == .error {
print("재생 오류:", event.data ?? [:])
}
}
.store(in: &cancellables)흔한 실수
- DASH
.mpdURL 사용 → E0010. HLS.m3u8또는 FairPlay HLS src 로 교체. - accessKey 누락 → E0001 재생 차단.
- FairPlay 를 시뮬레이터에서 테스트 → 실기기에서만 복호화 가능.
- 토큰/서명 만료(E0011~E0013) → 재생 직전 백엔드에서 최신 옵션을 수신해 적용.