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