DRM-relaterade medlemmar och händelser i NetStream-klassen

Flash Player 10.1 och senare, Adobe AIR 1.0 och senare

Klassen NetStream tillhandahåller en enkelriktad direktuppspelningsanslutning mellan Flash Player eller ett AIR-program, och antingen Flash Media Server eller det lokala filsystemet. (Klassen NetStream har också stöd för progressiv nedladdning.) Ett NetStream-objekt är en kanal i ett NetConnection-objekt. Klassen NetStream skickar fyra DRM-relaterade händelser:

Händelse

Beskrivning

drmAuthenticate

(endast AIR)

Definieras i klassen DRMAuthenticateEvent. Den här händelsen skickas när ett NetStream-objekt försöker att spela upp skyddat innehåll som kräver inloggningsuppgifter för autentisering före uppspelning.

Egenskaperna för den här händelsen omfattar header, usernamePrompt, passwordPrompt och urlPrompt som kan användas för att hämta och ställa in inloggningsuppgifter. Den här händelsen inträffar upprepade gånger tills NetStream-objektet tar emot giltiga inloggningsuppgifter.

drmError

Definieras i klassen DRMErrorEvent och skickas när ett NetStream-objekt försöker att spela upp skyddat innehåll och ett DRM-relaterat fel uppstår. Exempelvis skickas ett DRM-felhändelseobjekt när användarautentiseringen misslyckas. Det här felet kan inträffa om användaren inte har köpt rätten att visa innehållet. Det kan också inträffa om innehållets utgivare inte har stöd för visningsprogrammet.

drmStatus

Definieras i klassen DRMStatusEvent. Den här händelsen skickas när det skyddade innehållet börjar spelas upp (när användaren är autentiserad och har rätt att spela upp innehållet). DRMStatusEvent-objektet innehåller information relaterat till vouchern. Det är till exempel information om huruvida innehållet kan göras tillgängligt offline eller när vouchern utgår och innehållet inte längre kan visas.

status

Definieras i events.StatusEvent och skickas endast när programmet försöker att spela upp skyddat innehåll genom att anropa metoden NetStream.play(). Värdet för statuskodsegenskapen är ”DRM.encryptedFLV”.

Klassen NetStream innehåller följande DRM-specifika metoder, som endast kan användas i AIR:

Metod

Beskrivning

resetDRMVouchers()

Tar bort alla lokalt cachelagrade DRM-voucherdata (Digital Rights Management). Programmet måste hämta relevanta vouchers igen för att användaren ska kunna komma åt det krypterade innehållet.

Till exempel tar följande kod bort alla voucher från cachen:

NetStream.resetDRMVouchers();

setDRMAuthenticationCredentials()

Skickar en uppsättning inloggningsuppgifter, det vill säga användarnamn, lösenord och autentiseringstyp, till NetStream-objektet för autentisering. Giltiga autentiseringstyper är "drm" och "proxy" . Med autentiseringstypen "drm" autentiseras de angivna inloggningsuppgifterna mot Adobe Access. Med autentiseringstypen "proxy" autentiseras inloggningsuppgifterna mot proxyservern och de måste stämma överens med inloggningsuppgifterna som krävs av proxyservern. Ett företag kan till exempel kräva att programmet autentiserar mot en proxyserver innan användaren kan börja använda Internet. Proxyalternativet tillåter den här typen av autentisering. Om inte anonym autentisering används måste användaren fortfarande autentisera mot Adobe Access efter proxyautentiseringen för att få vouchern och spela upp innehållet. Du kan använda setDRMAuthenticationCredentials() en andra gång med "drm" -alternativet för att autentisera mot Adobe Access.

preloadEmbeddedMetadata()

Tolkar en lokal mediefil med inbäddade metadata. Om DRM-relaterade metadata påträffas anropar AIR callback-funktionen onDRMContentData() .

I AIR anropar dessutom ett NetStream-objekt återanropsfunktionerna onDRMContentData() och onPlayStatus() som ett resultat av ett anrop till metoden preloadEmbeddedMetaData() . Funktionen onDRMContentData() anropas när DRM-metadata hittas i en mediefil. Funktionen onPlayStatus() anropas när filen har tolkats. Funktionerna onDRMContentData() och onPlayStatus() måste definieras för client -objektet som associeras med NetStream-instansen. Om samma NetStream-objekt används för att ladda vouchern i förväg och för uppspelning av innehållet väntar du på onPlayStatus() -anropet som genereras av preloadEmbeddedMetaData() innan du påbörjar uppspelningen.

I följande kod för AIR ställs användarnamn (”administrator”), lösenord (”password”) och autentiseringstypen ”drm” in för autentisering av användaren. Metoden setDRMAuthenticationCredentials() måste tillhandahålla inloggningsuppgifter som stämmer överens med de av innehållsleverantören kända och accepterade inloggningsuppgifterna. Dessa uppgifter är samma inloggningsuppgifter som gör det möjligt för användaren att se innehållet. Koden för att spela upp videofilmen och säkerställa anslutningen till videoströmmen tas inte med här.

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"); 
}