We've created a custom CAF receiver with generic error listener based on cast.framework.events.EventType.ERROR event:
playerManager.addEventListener(cast.framework.events.EventType.ERROR, event => {
if (playerManager.getPlayerState() != "IDLE") {
let errorCode = (event.detailedErrorCode != undefined ?event.detailedErrorCode : null);
let errorMessage = null;
if ((event.error != undefined) && (event.error.reason != null)) errorMessage = event.error.reason;
playerManager.setIdleReason(cast.framework.messages.IdleReason.ERROR);
customErrorCodeClass.display(errorCode, errorMessage);
});
This handler works properly, but sometimes the player rise a "404 fragment error" for a single fragment, causing video stopping. We aren't able to know if that error is related for that particular fragment or there will be other 404 fragments, so we can't exclude that errors from error handler.
Does someone knows a better way to work around this issue?
Add following logs so you would know what happens with the fragments
and don't forget to set
debug
as logger level