-
Läs in de byte som hör till filen för det skyddade innehållets metadata med ett URLLoader-objekt. Ange en variabel för objektet, till exempel
metadata_bytes
.
Allt innehåll som kontrolleras av Adobe Access har Adobe Access-metadata. När innehållet packas kan dessa metadata sparas som en separat metadata-fil (.metadata) tillsammans med innehållet. Mer information finns i dokumentationen för Adobe Access.
-
Skapa en DRMContentData-instans. Lägg den här koden i ett try-catch-block:
new DRMContentData(
metadata_bytes
)
där
metadata_bytes
är URLLoader-objektet som fås i steg 1.
-
(Endast Flash Player) Körningen kontrollerar att Adobe Access-modulen finns. Om den inte hittas inträffar ett IllegalOperationError-fel med felkoden 3344 eller 3343 för DRMErrorEvent.
Du hantera felet genom att hämta Adobe Access-modulen med API:n SystemUpdater. När modulen har hämtats skickar SystemUpdater-objektet en COMPLETE-händelse. Inkludera en händelseavlyssnare för den här händelsen som går tillbaka till steg 2 när händelsen skickas. Följande kod visar de här stegen:
flash.system.SystemUpdater.addEventListener(Event.COMPLETE, updateCompleteHandler);
flash.system.SystemUpdater.update(flash.system.SystemUpdaterType.DRM)
private function updateCompleteHandler (event:Event):void {
/*redo step 2*/
drmContentData = new DRMContentData(metadata_bytes);
}
Om själva spelaren måste uppdateras skickas en status-händelse. Mer information om hur du hanterar den här händelsen finns i
Lyssna efter en uppdateringshändelse
.
Obs!
I AIR-program hanterar AIR-installationsprogrammet uppdateringen av Adobe Access-modulen och de uppdateringar av körningsversionen som behövs.
-
Skapa avlyssnare som lyssnar efter DRMStatusEvent och DRMErrorEvent som skickas från DRMManager-objektet:
DRMManager.addEventListener(DRMStatusEvent.DRM_STATUS, onDRMStatus);
DRMManager.addEventListener(DRMErrorEvent.DRM_ERROR, onDRMError);
Kontrollera att vouchern är giltig (inte null) i DRMStatusEvent-avlyssnaren. Hantera DRMErrorEvents i DRMErrorEvent-avlyssnaren. Se
Använda klassen DRMStatusEvent
och
Använda klassen DRMErrorEvent
.
-
Läs in vouchern (licensen) som krävs för uppspelning av innehållet.
Försök först att läsa in en lokalt sparad licens för att spela upp innehållet:
DRMManager.loadvoucher(drmContentData, LoadVoucherSetting.LOCAL_ONLY)
När inläsningen är slutförd skickar DRMManager-objektet
DRMStatusEvent.DRM_Status
.
-
Om DRMVoucher-objektet inte är null är vouchern giltig. Gå till steg 13.
-
Om DRMVoucher-objektet är null kontrollerar du autentiseringsmetoden som krävs av innehållets policy. Använd egenskapen
DRMContentData.authenticationMethod
.
-
Om autentiseringsmetoden är
ANONYMOUS
går du vidare till steg 13.
-
Om autentiseringsmetoden är
USERNAME_AND_PASSWORD
måste programmet kunna tillhandahålla en funktion som låter användaren ange inloggningsuppgifter. Skicka dessa inloggningsuppgifter till licensservern för autentisering av användaren:
DRMManager.authenticate(metadata.serverURL, metadata.domain, username, password)
DRMManager skickar en
DRMAuthenticationErrorEvent
om autentiseringen misslyckas eller en
DRMAuthenticationCompleteEvent
om autentiseringen lyckas. Skapa avlyssnare för dessa händelser.
-
Om autentiseringsmetoden är
UNKNOWN
, måste en egen autentiseringsmetod användas. I detta fall har innehållsleverantören ordnat så att autentiseringen görs vid sidan om utan hjälp av ActionScript 3.0-API:er. Den egna autentiseringsproceduren måste skapa en autentiseringstoken som kan skickas till metoden
DRMManager.setAuthenticationToken()
.
-
Om autentiseringen misslyckas måste programmet återgå till steg 9. Kontrollera att programmet har en funktion för att hantera och begränsa upprepade autentiseringsförsök. Det kan till exempel vara ett meddelande som visas efter tre misslyckade försök och som anger att autentiseringen misslyckades och att innehållet inte kan spelas upp.
-
Om du vill använda en lagrad token istället för att fråga användaren om inloggningsuppgifter anger du en token med metoden
DRMManager.setAuthenticationToken()
. Hämta sedan licensen från licensservern och spela upp innehållet som i steg 8.
-
(Valfritt) Om autentiseringen lyckas kan du hämta in en autentiseringstoken, vilket utgörs av en cachelagrad bytearray i minnet. Hämta denna token med egenskapen
DRMAuthenticationCompleteEvent.token
. Det går att lagra och använda en autentiseringstoken så att användaren inte behöver ange sina inloggningsuppgifter flera gånger för samma innehåll. Licensservern avgör giltighetsperioden för denna autentiseringstoken.
-
Om autentiseringen lyckas hämtas licensen från servern.
DRMManager.loadvoucher(drmContentData, LoadVoucherSetting.FORCE_REFRESH)
När inläsningen är slutförd skickar DRMManager-objektet DRMStatusEvent.DRM_STATUS. Lyssna efter den här händelsen, när den skickas går det att spela upp innehållet.
-
Spela upp videofilmen genom att skapa ett NetStream-objekt och anropa sedan dess
play()
-metod:
stream = new NetStream(connection);
stream.addEventListener(DRMStatusEvent.DRM _STATUS, drmStatusHandler);
stream.addEventListener(DRMErrorEvent.DRM_ERROR, drmErrorHandler);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.client = new CustomClient();
video.attachNetStream(stream);
stream.play(videoURL);