Utilisation de la classe DRMManager

Flash Player 10.1 et les versions ultérieures, Adobe AIR 1.5 et les versions ultérieures

La classe DRMManager permet de gérer les vouchers et les sessions du serveur des droits multimédias dans les applications.

Gestion des vouchers (AIR uniquement)

Lorsqu’un utilisateur lit un contenu protégé, le moteur d’exécution obtient et place en mémoire cache la licence requise pour visionner le contenu. Si l’application enregistre le fichier localement et si la licence autorise la lecture hors connexion, l’utilisateur peut visionner le contenu dans l’application AIR. La lecture locale hors connexion est possible même si la connexion au serveur de droits multimédias n’est pas disponible. Vous pouvez pré-placer en mémoire cache le voucher par le biais de DRMManager et de la méthode preloadEmbeddedMetadata() de NetStream. Il est inutile que l’application obtienne la licence nécessaire au visionnement du contenu. Par exemple, votre application peut télécharger le fichier multimédia, puis obtenir le voucher pendant que l’utilisateur est encore en ligne.

Pour précharger un voucher, utilisez la méthode NetStream preloadEmbeddedMetadata() pour obtenir un objet DRMContentData. L’objet DRMContentData contient l’URL et le domaine du serveur de gestion des droits d’auteur pouvant fournir la licence et indique si l’authentification de l’utilisateur est requise. Avec ces informations, vous pouvez appeler la méthode DRMManager loadVoucher() pour obtenir le voucher et le mettre en cache. La procédure de préchargement des vouchers est décrite plus en détails à la section Préchargement de vouchers pour une lecture hors connexion .

Gestion des sessions

Vous pouvez également utiliser DRMManager pour authentifier l’utilisateur auprès d’un serveur de gestion des droits d’auteur et pour gérer les sessions persistantes.

Appelez la méthode DRMManager authenticate() pour établir une session auprès du serveur de gestion des droits d’auteur. Une fois l’authentification réussie, le DRMManager distribue un objet DRMAuthenticationCompleteEvent qui contient un jeton de session. Vous pouvez enregistrer ce jeton pour établir les sessions futures de sorte que l’utilisateur n’ait plus besoin de fournir les informations d’identification de son compte. Transmettez le jeton à la méthode setAuthenticationToken() pour établir une nouvelle session authentifiée. (Les paramètres du serveur générés par le jeton déterminent la date d’expiration du jeton et d’autres attributs. Le code de l’application AIR ne doit pas interpréter la structure de données du jeton, car cette structure est susceptible de changer lors de futures mises à jour d’AIR.)

Il est possible de transférer les jetons d’authentification à d’autres ordinateurs. Pour les protéger, vous pouvez les stocker dans le magasin local chiffré d’AIR. Pour plus d’informations, voir Stockage local chiffré .

Evénements DRMStatus

Le DRMManager distribue un objet DRMStatusEvent lorsqu’un appel de la méthode loadVoucher() aboutit.

Si un voucher a été obtenu, la propriété detail (AIR uniquement) de l’objet d’événement prend la valeur : « DRM.voucherObtained » et la propriété voucher contient l’objet DRMVoucher.

Si le voucher n’a pas été obtenu, la propriété detail (AIR uniquement) conserve la valeur : « DRM.voucherObtained », mais la propriété voucher est null . Il est impossible d’obtenir un voucher si, par exemple, vous définissez LoadVoucherSetting sur localOnly et qu’aucun voucher n’a été placé dans la mémoire cache locale.

Si l’appel de la méthode loadVoucher() échoue, en raison d’une erreur de communication ou d’authentification, par exemple, le DRMManager distribue alors un objet DRMErrorEvent ou DRMAuthenticationErrorEvent.

Evénements DRMAuthenticationComplete

Le DRMManager distribue un objet DRMAuthenticationCompleteEvent lorsque l’utilisateur est bien authentifié via un appel à la méthode authenticate() .

L’objet DRMAuthenticationCompleteEvent contient un jeton réutilisable qui peut servir à maintenir l’authentification de l’utilisateur dans plusieurs sessions de l’application. Transmettez ce jeton à la méthode setAuthenticationToken() du DRMManager pour rétablir la session. (Le créateur du jeton définit les attributs du jeton, notamment sa date d’expiration. Adobe ne fournit pas d’API capable d’examiner les attributs du jeton.)

Evénements DRMAuthenticationError

Le DRMManager distribue un objet DRMAuthenticationErrorEvent lorsqu’un utilisateur n’a pas pu s’authentifier via un appel aux méthodes authenticate() ou setAuthenticationToken() .