De klasse NetStream vormt een streamingverbinding in één richting tussen enerzijds Flash Player of een AIR-toepassing en anderzijds de Flash Media Server of het lokale bestandssysteem. (De klasse NetStream ondersteunt ook progressief downloaden.) Een NetStream-object is een kanaal binnen een NetConnection-object. De NetStream-klasse verzendt vier DRM-gerelateerde gebeurtenissen:
Gebeurtenis
|
Beschrijving
|
drmAuthenticate
(Alleen AIR)
|
Gedefinieerd in de DRMAuthenticateEvent-klasse. Deze gebeurtenis wordt verzonden wanneer een NetStream-object beveiligde inhoud wil afspelen waarvoor gebruikersverificatie is vereist voordat de inhoud kan worden afgespeeld.
De eigenschappen van deze gebeurtenissen zijn header, usernamePrompt, passwordPrompt en urlPrompt, waarmee de gebruikersgegevens kunnen worden verkregen en ingesteld. Deze gebeurtenis wordt herhaald tot het NetStream-object geldige gebruikersgegevens ontvangt.
|
drmError
|
Gedefinieerd in de DRMErrorEvent-klasse en verzonden wanneer een NetStream-object beveiligde inhoud wil afspelen en een DRM-gerelateerde fout optreedt. Voorbeeld: er wordt een gebeurtenisobject voor de DRM-fout verzonden als de gebruikersautorisatie mislukt. Deze fout kan zich voordoen wanneer de gebruiker geen rechten heeft gekocht om de inhoud weer te geven. Deze fout kan zich ook voordoen als de inhoudsprovider geen ondersteuning biedt voor de weergavetoepassing.
|
drmStatus
|
Gedefinieerd in de DRMStatusEvent-klasse. Deze gebeurtenis wordt verzonden wanneer de beveiligde inhoud wordt afgespeeld (wanneer de gebruiker is geverifieerd en geautoriseerd om de inhoud af te spelen). Het DRMStatusEvent-object bevat informatie die is gerelateerd aan de voucher. Deze informatie geeft onder meer aan of de inhoud offline toegankelijk mag worden gemaakt, of wanneer de voucher vervalt en de inhoud niet langer mag worden bekeken.
|
status
|
Gedefinieerd in events.StatusEvent en alleen verzonden wanneer de toepassing probeert om beveiligde inhoud af te spelen door de methode NetStream.play() aan te roepen. De waarde van de statuscode-eigenschap is "DRM.encryptedFLV".
|
De NetStream-klasse bevat onder andere de volgende DRM-specifieke methoden, alleen voor gebruik in AIR:
Methode
|
Beschrijving
|
resetDRMVouchers()
|
Verwijdert alle lokaal in de cache geplaatste DRM-bongegevens. De toepassing moet de bonnen opnieuw downloaden, anders kan de gebruiker de gecodeerde inhoud niet openen.
De volgende code verwijdert bijvoorbeeld alle vouchers uit de cache:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Geeft een reeks verificatiegegevens (zoals gebruikersnaam, wachtwoord en verificatietype) voor verificatie door aan het NetStream-object. Geldige verificatietypen zijn
''drm''
en
''proxy''
. Bij het verificatietype
"drm"
worden de gegevens geverifieerd met behulp van Adobe Access. Bij het verificatietype
"proxy"
worden de gegevens geverifieerd met behulp van de proxyserver. Ze moeten overeenkomen met de gegevens die door de proxyserver worden vereist. Een onderneming kan bijvoorbeeld eisen dat de toepassing moet worden geverifieerd met behulp van een proxyserver, voordat de gebruiker toegang tot internet krijgt. Dit type verificatie is mogelijk met de optie "proxy". Tenzij anonieme verificatie wordt gebruikt, moet de gebruiker na de proxyverificatie nog steeds door Adobe Access worden geverifieerd om de voucher te verkrijgen en de inhoud af te spelen. U kunt
setDRMAuthenticationCredentials()
nogmaals gebruiken (nu met de optie "
drm
") om verificatie uit te voeren met behulp van Adobe Access.
|
preloadEmbeddedMetadata()
|
Parseert een lokaal mediabestand op ingesloten metagegevens. Wanneer metagegevens worden gevonden die betrekking hebben op DRM, roept AIR de callback-functie
onDRMContentData()
aan.
|
Verder roept een NetStream-object in AIR de callbackfuncties
onDRMContentData()
en
onPlayStatus()
aan als resultaat van een aanroep naar de methode
preloadEmbeddedMetaData()
. De functie
onDRMContentData()
wordt aangeroepen wanneer DRM-metagegevens worden aangetroffen in een mediabestand. De functie
onPlayStatus()
wordt aangeroepen wanneer het bestand is geparseerd. De functies
onDRMContentData()
en
onPlayStatus()
moeten worden gedefinieerd op het
client
-object dat is toegewezen aan de NetStream-instantie. Als u hetzelfde NetStream-object gebruikt om metagegevens op voorhand te laden en om inhoud af te spelen, moet u met het afspelen wachten op de aanroep van
onPlayStatus()
die door
preloadEmbeddedMetaData()
wordt gegenereerd.
In de volgende code van AIR zijn de gebruikersnaam (''administrator''), het wachtwoord (''password'') en het verificatietype ''drm'' ingesteld om de gebruiker te verifiëren. De methode setDRMAuthenticationCredentials() moet verificatiegegevens bieden die overeenkomen met de verificatiegegevens die bekend zijn bij en worden geaccepteerd door de inhoudsprovider. Het gaat hierbij om dezelfde verificatiegegevens waarmee de gebruiker de inhoud kan bekijken. De code om de video af te spelen en het controleren of een verbinding met de videostroom tot stand is gebracht, is hier niet opgenomen.
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");
}
|
|
|