Elementy i zdarzenia klasy NetStream związane z mechanizmem DRM

Flash Player 10.1 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Klasa NetStream udostępnia jednokierunkowe połączenie strumieniowe między programem Flash Player lub aplikacją AIR a serwerem Flash Media Server lub lokalnym systemem plików. (Klasa NetStream obsługuje także stopniowe pobieranie). Obiekt NetStream jest kanałem wewnątrz obiektu NetConnection. Klasa NetStream wywołuje cztery zdarzenia powiązane z mechanizmem DRM:

Zdarzenie

Opis

drmAuthenticate

(tylko środowisko AIR)

Zdefiniowane w klasie DRMAuthenticateEvent. To zdarzenie jest wywoływane, gdy obiekt NetStream podejmuje próbę odtworzenia chronionych treści, które wymagają uwierzytelnienia za pomocą poświadczeń użytkownika przed odtworzeniem.

Właściwości tego zdarzenia to m.in. header, usernamePrompt, passwordPrompt oraz urlPrompt; właściwości te umożliwiają odczytywanie i ustawianie poświadczeń użytkownika. To zdarzenie jest wywoływane cyklicznie, dopóki obiekt NetStream nie odbierze poprawnych poświadczeń użytkownika.

drmError

Zdefiniowane w klasie DRMErrorEvent i wywoływane, gdy obiekt NetStream podejmuje próbę odtworzenia chronionych treści i napotyka na błąd powiązany z mechanizmem DRM. Przykładowo, obiekt zdarzenia błędu DRM jest wywoływany w razie niepowodzenia w uwierzytelnianiu użytkownika. Powodem wystąpienia tego błędu może być niezakupienie przez użytkownika praw do wyświetlania treści. Możliwe również, że dostawca treści nie obsługuje aplikacji używanej do przeglądania.

drmStatus

Zdefiniowane w klasie DRMStatusEvent. To zdarzenie jest wywoływane przy rozpoczęciu odtwarzania chronionych treści (gdy użytkownik zostanie uwierzytelniony i autoryzowany do odtwarzania treści). Obiekt DRMStatusEvent zawiera informacje powiązane z kuponem. Informacje dotyczące kuponu określają, czy treść może być udostępniana w trybie offline, lub jaki jest termin ważności kuponu, po którym treści nie można już oglądać.

status

Zdefiniowane w obiekcie events.StatusEvent i wywoływane tylko, gdy aplikacja podejmuje próbę odtworzenia chronionych treści poprzez wywołanie metody NetStream.play(). Wartość właściwości status to „DRM.encryptedFLV”.

Klasa NetStream zawiera następujące metody właściwe dla mechanizmu DRM i wykorzystywane wyłącznie w środowisku AIR:

Metoda

Opis

resetDRMVouchers()

Usuwa wszystkie buforowane lokalnie dane kuponów związane z mechanizmem DRM. Aby użytkownik mógł uzyskać dostęp do zaszyfrowanej treści, aplikacja musi ponownie pobrać kupony.

Na przykład, poniższy kod usuwa wszystkie kupony z buforu:

NetStream.resetDRMVouchers();

setDRMAuthenticationCredentials()

Przekazuje zestaw poświadczeń uwierzytelniających, w szczególności nazwę użytkownika, hasło i typ uwierzytelniania, do obiektu NetStream celem uwierzytelnienia. Poprawne typy uwierzytelniania to drm i proxy . W przypadku typu uwierzytelniania drm podane poświadczenia są uwierzytelniane w module Adobe Access. W przypadku typu uwierzytelniania „proxy" poświadczenia są uwierzytelniane na serwerze proxy i muszą być zgodne z poświadczeniami wymaganymi przez ten serwer. Na przykład w środowisku korporacyjnym może obowiązywać wymóg uwierzytelniania aplikacji na serwerze proxy przed uzyskaniem przez użytkownika dostępu do Internetu. Opcja proxy umożliwia realizowanie tego rodzaju uwierzytelniania. O ile nie jest używane uwierzytelnianie anonimowe, po uwierzytelnieniu na serwerze proxy użytkownik wciąż musi uwierzytelnić się w module Adobe Access, aby uzyskać kupon i odtworzyć treść. Aplikacja może po raz drugi wywołać metodę setDRMAuthenticationCredentials() z opcją drm , aby uwierzytelnić użytkownika w module Adobe Access.

preloadEmbeddedMetadata()

Analizuje lokalny plik multimedialny w poszukiwaniu osadzonych metadanych. Po znalezieniu metadanych związanych z mechanizmem DRM środowisko AIR wywołuje funkcję wywołania zwrotnego onDRMContentData() .

Ponadto obiekt NetStream (w środowisku AIR) wywołuje funkcje wywołania zwrotnego onDRMContentData() i onPlayStatus() w wyniku wywołania metody preloadEmbeddedMetaData() . Funkcja onDRMContentData() jest wywoływana po napotkaniu w pliku multimedialnym metadanych mechanizmu DRM. Funkcja onPlayStatus() jest wywoływana po zakończeniu analizowania pliku. Funkcje onDRMContentData() i onPlayStatus() muszą być zdefiniowane w obiekcie client przypisanym do instancji klasy NetStream. W wypadku użycia tego samego obiektu NetStream do wstępnego ładowania kuponów i odtwarzania treści należy przed rozpoczęciem odtwarzania poczekać na wywołanie funkcji onPlayStatus() wygenerowanej przez metodę preloadEmbeddedMetaData() .

W poniższym kodzie (dotyczy środowiska AIR) użytkownik jest uwierzytelniany przy użyciu nazwy użytkownika („administrator”), hasła („password”) i typu uwierzytelniania „drm”. Metoda setDRMAuthenticationCredentials() musi zapewniać poświadczenia zgodne z tymi uznanymi i zatwierdzonymi przez dostawcę treści. Te poświadczenia są tymi samymi poświadczeniami użytkownika, które zezwalają mu na wyświetlanie treści. W przykładzie pominięto kod odtwarzający wideo i weryfikujący połączenie ze strumieniem wideo.

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