Procédure de lecture de contenu protégé

  1. Créez une occurrence de MediaPlayer .
    player = new MediaPlayer();
  2. Enregistrez l’événement MediaPlayerCapabilityChangeEvent.HAS_DRM_CHANGE dans le lecteur. Cet événement est distribué si le contenu est protégé par DRM.
    player.addEventListener(MediaPlayerCapabilityChangeEvent.HAS_DRM_CHANGE, onDRMCapabilityChange);
  3. Dans le gestionnaire d’événement, obtenez l’occurrence de DRMTrait . DRMTrait est l’interface par le biais de laquelle vous appelez les méthodes associées au client DRM, telles que authenticate() . Lors du chargement d’un contenu protégé par DRM, OSMF procède à la gestion de droits multimédias en validant les actions, puis distribue des événements d’état. Ajoutez un gestionnaire d’événement DRMEvent.DRM_STATE_CHANGE à l’interface DRMTrait .
    private function onDRMCapabilityChange 
        (event :MediaPlayerCapabilityChangeEvent) :void 
            { 
                if (event.type == MediaPlayerCapabilityChangeEvent.HAS_DRM_CHANGE 
                    && event.enabled) 
                { 
                    drmTrait = player.media.getTrait(MediaTraitType.DRM) as DRMTrait; 
                    drmTrait.addEventListener 
                        (DRMEvent.DRM_STATE_CHANGE,                     onDRMStateChange); 
                } 
            }
  4. Gérez les événements DRM dans la méthode onDRMStateChange() .
            private function onDRMStateChange(event :DRMEvent) :void 
            { 
                trace ( "DRMState: ",event.drmState); 
                switch(event.drmState) 
                { 
                    case DRMState.AUTHENTICATION_NEEDED: 
                        // Identity-based content 
                        var authPopup :AuthWindow = AuthWindow.create(_parentWin); 
                        authPopup.serverURL = event.serverURL; 
                        authPopup.addEventListener("dismiss", function () :void { 
                            trace ("Authentication dismissed"); 
                            if(_drmTrait != null) 
                            { 
                                //Ignore authentication. Just 
                                //try to acquire a license. 
                                _drmTrait.authenticate(null, null); 
                            } 
                        }); 
                        authPopup.addEventListener("authenticate", 
                                        function (event :AuthWindowEvent) :void { 
                            if(_drmTrait != null) 
                            { 
                                _drmTrait.authenticate(event.username, event.password); 
                            } 
                        }); 
                        authPopup.show(); 
                        break; 
                    case DRMState.AUTHENTICATING: 
                        //Display any authentication message. 
                        trace("Authenticating..."); 
                        break; 
                    case DRMState.AUTHENTICATION_COMPLETE: 
                        // Start to retrieve voucher and playback. 
                        // You can display the voucher information at this point. 
                        if(event.token) 
                        // You just received the authentication token. 
                        { 
                            trace("Authentication success. Token: \n", event.token); 
                        } 
                        else 
                        // You have got the voucher. 
                        { 
                            trace("DRM License:");                         
                            trace("Playback window period: ", 
                                !isNaN(event.period) ? event.period == 0 ? 
                                "<unlimited>" : event.period : "<none>"); 
                            trace("Playback window end date: ", 
                                event.endDate != null ? event.endDate : "<none>"); 
                            trace("Playback window start date: ", 
                                event.startDate != null ? event.startDate : "<none>"); 
                        } 
                        break; 
                    case DRMState.AUTHENTICATION_ERROR: 
                        trace ("DRM Error:", event.mediaError.errorID + 
                            "[" + DRMErrorEventRef.getDRMErrorMnemonic 
                            (event.mediaError.errorID) + "]"); 
                        //Stop everything. 
                        player.media = null; 
                        break; 
                    case DRMState.DRM_SYSTEM_UPDATING: 
                        Logger.log("Downloading DRM module..."); 
                        break; 
                    case DRMState.UNINITIALIZED: 
                        break; 
                } 
            }