Gestión de errores con el SDK nativo para iOS

En este tema, aprenderá cómo Brightcove Native SDK para iOS maneja los errores de reproducción.

Resumen

Los códigos de error tienen el término ErrorCode en el nombre. Por ejemplo:

	kBCOVPlaybackSessionErrorCodeLoadFailed

Los eventos tienen la palabra Event en el nombre. Por ejemplo:

	kBCOVPlaybackSessionLifecycleEventFail

Errores de reproducción

Los errores de reproducción se manejan a través de eventos. En términos generales, recibiría errores de reproducción utilizando la devolución de llamada delegada de eventos de ciclo de vida en el BCOVPlaybackController:

	- (void)playbackSession:(id<BCOVPlaybackSession>)session
	didReceiveLifecycleEvent:(BCOVPlaybackSessionLifecycleEvent *)lifecycleEvent

Para obtener más información, haga lo siguiente:

  1. Si obtiene un evento de error como kBCOVPlaybackSessionLifecycleEventFail o kBCOVPlaybackSessionLifecycleEventResumeFail , revisa el evento properties diccionario para un @"error" clave.

    Esto proporcionará una NSError objeto con información sobre el problema.

  2. Cada NSError tendrá un dominio de error, como el siguiente:

    • NSCocoaErrorDomain
    • kBCOVPlaybackSessionErrorDomain
     

    Cada dominio de error tendrá un código de error asociado y una descripción del error, como los siguientes:

    • kBCOVPlaybackSessionErrorCodeLoadFailed
    • kBCOVPlaybackSessionErrorCodeNoPlayableSource
  3. Algunos errores también tendrán un error subyacente que se puede recuperar desde el objeto de error. userInfo diccionario con el NSUnderlyingErrorKey clave. Normalmente será un sistema NSError que puede proporcionar más información.

  4. Para encontrar todos los dominios de error en el SDK, busque en los encabezados lo siguiente:

    	ErrorDomain

    Aquí hay una lista de encabezados que tienen ErrorDomain referencias:

    • BCOVFPSAuthorizationProxy.h
    • BCOVFPSBrightcoveAuthProxy.h
    • BCOVOfflineVideoManager.h
    • BCOVPlaybackService.h
    • BCOVPlaybackSession.h
  5. Para encontrar todos los códigos de error, busque cada ErrorDomain para el siguiente:

    	ErrorCode

    Por ejemplo, en BCOVPlaybackSession.h , verás kBCOVPlaybackSessionErrorDomain con los siguientes códigos de error:

    • kBCOVPlaybackSessionErrorCodeLoadFailed
    • kBCOVPlaybackSessionErrorCodeFailedToPlayToEnd
    • kBCOVPlaybackSessionErrorCodeNoPlayableSource
  6. Otros dominios pueden devolver errores de manera diferente. Por ejemplo, el BCOVPlaybackService El objeto devolverá errores en sus bloques de finalización si hay errores de red al solicitar videos del catálogo en línea. Utiliza el dominio de error kBCOVPlaybackServiceErrorDomain.

Tabla de errores de reproducción

Aquí hay una lista de posibles errores de reproducción del Native SDK para iOS. Tenga en cuenta que los errores también pueden transmitirse desde el marco subyacente.

Errores de reproducción de iOS
Encabezamiento Error Descripción
BCOVFPSAuthorizationProxy.h kBCOVFPSErrorDomain Dominio de error para errores relacionados con FairPlay
kBCOVFPSErrorCodeStreamingContentKeyRequest Ocurrió un error al solicitar la clave de contenido
kBCOVFPSErrorCódigoAplicaciónCertificadoSolicitud Ocurrió un error al solicitar el certificado de la aplicación
BCOVFPSBrightcoveAuthProxy.h kBCOVFPSAuthProxyErrorDomain Error de dominio para errores relacionados con FairPlay Auth Proxy.
kBCOVFPSAuthProxyErrorCódigoAplicaciónCertificadoRequestError Solicitud de certificado de solicitud fallida
kBCOVFPSAuthProxyErrorCodeContentKeyRequestError Solicitud de clave fallida
kBCOVFPSAuthProxyErrorCodeContentKeyGenerationFailed No se pudo generar la solicitud de clave
BCOVPlaybackService.h BCOVPlaybackServiceErrorNoError No hay error.
BCOVPlaybackServiceErrorCodeConnectionError Código de error que indica que hubo un error al conectarse a la API de reproducción. Compruebe la clave error.userInfo NSUnderlyingErrorKey para ver el error de conexión real.
BCOVPlaybackServiceErrorCodeJSONDeserializationError Código de error que indica que hubo un error al analizar la respuesta como JSON. Si la solicitud devolvió algún dato, ese NSData sin procesar se incluirá en la información de usuario mediante la clave kBCOVPlaybackServiceErrorKeyRawResponseData . Verifique la clave error.userInfo NSUnderlyingErrorKey para el error de deserialización JSON real.
BCOVPlaybackServiceErrorCodeAPIError Código de error que indica que la API devolvió un error. Verifique la clave kBCOVPlaybackServiceErrorKeyAPIErrors de error.userInfo para ver un NSArray de errores devueltos por la API y clave kBCOVPlaybackServiceErrorKeyAPIHTTPStatusCode para encontrar el código de estado devuelto.
kBCOVPlaybackServiceErrorDomain Dominio de error para BCOVPlaybackService .
kBCOVPlaybackServiceErrorKeyRawResponseData Clave para NSError.userInfo para errores con el dominio kBCOVPlaybackServiceErrorDomain y errorCode BCOVPlaybackServiceErrorCodeJSONDeserializationError . Estos son los datos de respuesta sin procesar. Esto puede no existir en error.userInfo .
kBCOVPlaybackServiceErrorKeyAPIErrors Clave para NSError.userInfo para errores con el dominio kBCOVPlaybackServiceErrorDomain y errorCode BCOVPlaybackServiceErrorCodeAPIError . Este es un NSArray de errores devueltos por la API de reproducción.
kBCOVPlaybackServiceErrorKeyAPIHTTPStatusCode Clave para NSError.userInfo para errores con el dominio kBCOVPlaybackServiceErrorDomain y errorCode BCOVPlaybackServiceErrorCodeAPIError . Este es el código de estado HTTP devuelto por la solicitud de API.
BCOVPlaybackSession.h Error clave de evento de sesión de reproducción de KBCOV El video no se pudo cargar. Las propiedades del evento contendrán el error subyacente.
El evento de ciclo de vida de la sesión de reproducción de KBCOV no se pudo reproducir hasta el final

El video falló durante la reproducción y no se pudo recuperar, posiblemente debido a un error de red. Las propiedades del evento contendrán el error subyacente introducido por kBCOVPlaybackSessionEventKeyError

Es posible que se recupere de este error una vez que la red se haya recuperado, usando el método [BCOVPlaybackController resumeVideoAtTime:withAutoPlay:] .

Error clave de evento de sesión de reproducción de KBCOV Se ha producido un error genérico. Las propiedades del evento pueden contener el subyacente
kBCOVReproducciónSesiónCiclo de vidaEventoMiniaturaActivoError al cargar El recurso de búsqueda de miniaturas no se pudo cargar. Las propiedades del evento pueden contener el error subyacente introducido por kBCOVPlaybackSessionEventKeyError .
Error clave de evento de sesión de reproducción de KBCOV La clave del error en las propiedades del evento.
Dominio de error de sesión de reproducción de KBCOV Dominio de error para el SDK.
Error en la carga del código de error de la sesión de reproducción de KBCOV El video no se pudo cargar.
Código de error de la sesión de reproducción de KBCOV no se pudo reproducir hasta finalizar El video falló durante la reproducción y no se pudo recuperar, posiblemente debido a un error de red.
Código de error de sesión de reproducción de KBCOV no es fuente reproducida Ninguna fuente reproducible estaba disponible para este video.
kBCOVPlaybackSessionErrorCodeWifiNo disponible No hay red WiFi disponible y allowCellularPlayback está deshabilitado.