Gestion des erreurs avec le SDK natif pour iOS

Dans cette rubrique, vous apprendrez comment le SDK natif Brightcove pour iOS gère les erreurs de lecture.

Aperçu

Les codes d'erreur ont le terme ErrorCode dans le nom. Par exemple :

	kBCOVPlaybackSessionErrorCodeLoadFailed

Les événements ont le mot Event dans le nom. Par exemple :

	kBCOVPlaybackSessionLifecycleEventFail

Erreurs de lecture

Les erreurs de lecture sont gérées via des événements. D'une manière générale, vous pouvez recevoir des erreurs de lecture en utilisant le rappel du délégué des événements du cycle de vie sur BCOVPlaybackController:

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

Pour obtenir plus d'informations, procédez comme suit :

  1. Si vous obtenez un événement d'erreur comme kBCOVPlaybackSessionLifecycleEventFail ou kBCOVPlaybackSessionLifecycleEventResumeFail , vérifiez l'événement properties dictionnaire pour un @"error" clé.

    Cela fournira un NSError objet avec des informations sur le problème.

  2. Chaque NSError aura un domaine d'erreur, comme le suivant :

    • NSCocoaErrorDomain
    • kBCOVPlaybackSessionErrorDomain
     

    Chaque domaine d'erreur aura un code d'erreur et une description d'erreur associés, comme suit :

    • kBCOVPlaybackSessionErrorCodeLoadFailed
    • kBCOVPlaybackSessionErrorCodeNoPlayableSource
  3. Certaines erreurs auront également une erreur sous-jacente qui peut être récupérée à partir de l'objet d'erreur userInfo dictionnaire avec le NSUnderlyingErrorKey clé. Ce sera généralement un système NSError qui peut fournir plus d'informations.

  4. Pour trouver tous les domaines d'erreur dans le SDK, recherchez les en-têtes suivants :

    	ErrorDomain

    Voici une liste d'en-têtes contenant des ErrorDomain références :

    • BCOVFPSAuthorizationProxy.h
    • BCOVFPSBrightcoveAuthProxy.h
    • BCOVOfflineVideoManager.h
    • BCOVPlaybackService.h
    • BCOVPlaybackSession.h
  5. Pour trouver tous les codes d'erreur, ErrorDomain recherchez chacun des codes suivants :

    	ErrorCode

    Par exemple, dans BCOVPlaybackSession.h, vous verrez kBCOVPlaybackSessionErrorDomain les codes d'erreur suivants :

    • kBCOVPlaybackSessionErrorCodeLoadFailed
    • kBCOVPlaybackSessionErrorCodeFailedToPlayToEnd
    • kBCOVPlaybackSessionErrorCodeNoPlayableSource
  6. D'autres domaines peuvent renvoyer des erreurs différemment. Par exemple, le BCOVPlaybackService object renverra des erreurs dans ses blocs d'achèvement s'il y a des erreurs de réseau lors de la demande de vidéos du catalogue en ligne. Il utilise le domaine d'erreur kBCOVPlaybackServiceErrorDomain.

Tableau des erreurs de lecture

Voici une liste d'erreurs de lecture possibles provenant du SDK natif pour iOS. Il faut savoir que des erreurs peuvent également être transmises par le cadre sous-jacent.

erreurs de lecture iOS
Entête Erreur Description
BCOVFPSAuthorizationProxy.h kBCOVFPSErrorDomain Domaine d'erreur pour les erreurs liées à FairPlay
kBCOVFPSErrorCodeStreamingContentKeyRequest Une erreur s'est produite lors de la demande de la clé de contenu
kBCOVFPSErrorCodeApplicationCertificateRequest Une erreur s'est produite lors de la demande de certificat d'application
BCOVFPSBrightcoveAuthProxy.h kBCOVFPSAuthProxyErrorDomain Domaine d'erreur pour les erreurs liées à FairPlay Auth Proxy.
kBCOVFPSAuthProxyErrorCodeApplicationCertificateRequestFailed Échec de la demande de certificat d'application
kBCOVFPSAuthProxyErrorCodeContentKeyRequestFailed Échec de la demande de clé
kBCOVFPSAuthProxyErrorCodeContentKeyGenerationFailed Échec de la génération de la demande de clé
BCOVPlaybackService.h BCOVPlaybackServiceErrorNoError Pas d'erreur.
BCOVPlaybackServiceErrorCodeConnectionError Code d'erreur indiquant qu'une erreur s'est produite lors de la connexion à l'API de lecture. Vérifier la clé error.userInfo NSUnderlyingErrorKey pour l'erreur de connexion réelle.
BCOVPlaybackServiceErrorCodeJSONDeserializationError Code d'erreur indiquant qu'une erreur s'est produite lors de l'analyse de la réponse en tant que JSON. Si la demande a renvoyé des données, ces NSData brutes seront incluses dans le userInfo par la clé kBCOVPlaybackServiceErrorKeyRawResponseData. Vérifier la clé NSUnderlyingErrorKey de error .userInfo pour connaître l'erreur de désérialisation JSON.
BCOVPlaybackServiceErrorCodeAPIError Code d'erreur indiquant qu'une erreur a été renvoyée par l'API. Vérifiez la clé error.userInfo kBCOVPlaybackServiceErrorKeyAPIErrors pour obtenir un NSArray des erreurs renvoyées par l'API et la clé kBCOVPlaybackServiceErrorKeyAPIHTTPStatusCode pour trouver le code d'état renvoyé.
kBCOVPlaybackServiceErrorDomain Domaine d'erreur pour BCOVPlaybackService.
kBCOVPlaybackServiceErrorKeyRawResponseData Clé pour NSError.userInfo pour les erreurs avec le domaine kBCOVPlaybackServiceErrorDomain et le code d'erreur BCOVPlaybackServiceErrorCodeJSONDeserializationError. Il s'agit des données brutes de la réponse. Ceci peut ne pas exister dans error.userInfo.
kBCOVPlaybackServiceErrorKeyAPIErrors Clé pour NSError.userInfo pour les erreurs avec le domaine kBCOVPlaybackServiceErrorDomain et le code d'erreur BCOVPlaybackServiceErrorCodeAPIError. Il s'agit d'un tableau NSArray d'erreurs renvoyées par l'API de lecture.
kBCOVPlaybackServiceErrorKeyAPIHTTPStatusCode Clé pour NSError.userInfo pour les erreurs avec le domaine kBCOVPlaybackServiceErrorDomain et le code d'erreur BCOVPlaybackServiceErrorCodeAPIError. Il s'agit du code d'état HTTP renvoyé par la requête API.
BCOVPlaybackSession.h kBCOVPlaybackSessionEventKeyError La vidéo n'a pas pu être chargée. Les propriétés de l'événement contiendront l'erreur sous-jacente.
kBCOVPlaybackSessionLifecycleEventFailedToPlayToEndTime

La vidéo a échoué pendant la lecture et n'a pas pu se rétablir, probablement en raison d'une erreur de réseau. Les propriétés de l'événement contiendront l'erreur sous-jacente dont la clé est kBCOVPlaybackSessionEventKeyError

Il peut être possible de récupérer de cette erreur une fois le réseau récupéré, en utilisant le [BCOVPlaybackController resumeVideoAtTime:withAutoPlay:] méthode.

kBCOVPlaybackSessionEventKeyError Une erreur générique s'est produite. Les propriétés de l'événement peuvent contenir les
kBCOVPlaybackSessionLifecycleEventThumbnailAssetFailedToLoad Le chargement de la vignette recherchée a échoué. Les propriétés de l'événement peuvent contenir l'erreur sous-jacente dont la clé est kBCOVPlaybackSessionEventKeyError.
kBCOVPlaybackSessionEventKeyError La clé de l'erreur dans les propriétés de l'événement.
kBCOVPlaybackSessionErrorDomain Domaine d'erreur pour le SDK.
kBCOVPlaybackSessionErrorCodeLoadFailed La vidéo n'a pas pu être chargée.
kBCOVPlaybackSessionErrorCodeFailedToPlayToEnd La vidéo a échoué pendant la lecture et n'a pas pu se rétablir, probablement en raison d'une erreur de réseau.
kBCOVPlaybackSessionErrorCodeNoPlayableSource Aucune source jouable n'était disponible pour cette vidéo.
kBCOVPlaybackSessionErrorCodeWifiUnavailable Aucun réseau WiFi n'est disponible et l'option Autoriser la lecture cellulaire est désactivée.