Membres et événements DRM de la classe NetStream

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

La classe NetStream propose une connexion en flux continu unidirectionnelle entre Flash Player ou une application AIR et Flash Media Server ou le système de fichiers local. (La classe NetStream gère également les téléchargements en mode progressif.) Un objet NetStream est un canal dans un objet NetConnection. La classe NetStream distribue quatre événements DRM :

Evénement

Description

drmAuthenticate

(AIR uniquement)

Défini dans la classe DRMAuthenticateEvent. Cet événement est distribué lorsqu’un objet NetStream tente de lire un contenu protégé qui requiert l’authentification des informations d’identification de l’utilisateur avant la lecture.

Les propriétés de cet événement incluent les propriétés header, usernamePrompt, passwordPrompt et urlPrompt, qui permettent d’obtenir et de définir les informations d’identification des utilisateurs. Cet événement est répété jusqu’à ce que l’objet NetStream reçoive des informations d’identification des utilisateurs valides.

drmError

Défini dans la classe DRMErrorEvent et distribué lorsqu’un objet NetStream essaie de lire un contenu protégé et rencontre une erreur DRM. Un objet d’événement associé à une erreur DRM est par exemple distribué lorsque l’autorisation de l’utilisateur échoue. Cette erreur s’est peut-être produite car l’utilisateur ne s’est pas acquitté des droits d’affichage du contenu. Il est également possible que le fournisseur de contenu ne prenne pas en charge l’application d’affichage.

drmStatus

Défini dans la classe DRMStatusEvent. Cet événement est distribué lorsque la lecture du contenu protégé démarre (une fois l’utilisateur authentifié et autorisé à lire le contenu). L’objet DRMStatusEvent contient des informations relatives au voucher. Il mémorise par exemple des informations relatives à la disponibilité hors connexion du contenu ou à la date d’expiration du voucher (au terme de laquelle il est impossible de visionner le contenu).

status

Défini dans l’événement events.StatusEvent et distribué uniquement lorsque l’application essaie de lire un contenu protégé, en appelant la méthode NetStream.play(). La valeur de la propriété status code est définie sur « DRM.encryptedFLV ».

La classe NetStream comprend les méthodes propres à DRM suivantes, réservées à AIR :

Méthode

Description

resetDRMVouchers()

Supprime toutes les données du voucher DRM placé dans le cache local. L’application doit télécharger à nouveau les vouchers pour que l’utilisateur puisse accéder au contenu chiffré.

Par exemple, le code suivant supprime tous les vouchers du cache :

NetStream.resetDRMVouchers();

setDRMAuthenticationCredentials()

Transmet un jeu d’informations d’identification, à savoir le nom d’utilisateur, le mot de passe et le type d’authentification, à l’objet NetStream à titre d’authentification. Les types d’authentification valides sont « drm » et « proxy ». Pour le type d’authentification « drm », les informations d’identification indiquées sont comparées à Adobe Access. Pour le type d’authentification « proxy », les informations d’identification sont comparées aux données stockées sur le serveur proxy et doivent être identiques aux informations requises par ce dernier. Par exemple, une entreprise peut solliciter l’authentification de l’application auprès d’un serveur proxy avant que l’utilisateur puisse accéder à Internet. L’option proxy permet également ce type d’authentification. A moins que l’authentification anonyme ne soit utilisée, au terme de l’authentification proxy, l’utilisateur doit néanmoins s’authentifier auprès d’Adobe Access pour obtenir le voucher et lire le contenu. Vous pouvez utiliser setDRMAuthenticationCredentials() une deuxième fois, avec l’option « drm », pour l’authentification auprès d’Adobe Access.

preloadEmbeddedMetadata()

Recherche les métadonnées intégrées dans un fichier multimédia local. Lorsque des métadonnées DRM sont détectées, AIR appelle la fonction de rappel onDRMContentData() .

Par ailleurs, dans AIR, un objet NetStream appelle les fonctions de rappel onDRMContentData() et onPlayStatus() suite à un appel à la méthode preloadEmbeddedMetaData() . La fonction onDRMContentData() est appelée lorsque des métadonnées DRM sont détectées dans un fichier multimédia. La fonction onPlayStatus() est appelée une fois l’analyse du fichier terminée. Les fonctions onDRMContentData() et onPlayStatus() doivent être définies sur l’objet client affecté à l’occurrence de NetStream. Si vous utilisez le même objet NetStream pour précharger les vouchers et lire un contenu, attendez l’appel onPlayStatus() généré par preloadEmbeddedMetaData() avant de commencer la lecture.

Dans le code suivant pour AIR, le nom d’utilisateur (« administrator »), le mot de passe (« password ») et le type d’authentification (« drm ») sont définis pour authentifier l’utilisateur. La méthode setDRMAuthenticationCredentials() doit fournir des informations d’identification connues et acceptées par le fournisseur de contenu. Ces informations d’identification sont identiques aux données saisies par l’utilisateur pour visionner le contenu. Ce chapitre ne contient pas le code permettant de lire la vidéo et de s’assurer qu’une connexion au flux vidéo a abouti.

var connection:NetConnection = new NetConnection(); 
connection.connect(null); 
 
var videoStream:NetStream = new NetStream(connection); 
 
videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE, 
                            drmAuthenticateEventHandler) 
 
private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void  
{ 
    videoStream.setDRMAuthenticationCredentials("administrator", "password", "drm"); 
}