Flash Player 10.1 i nowsze wersje, Adobe AIR 1.5 i nowsze wersje
Klasa DRMManager służy do zarządzania kuponami i sesjami serwera uprawnień DRM w aplikacjach.
Zarządzanie kuponami (dotyczy tylko środowiska AIR)
Za każdym razem, gdy użytkownik odtwarza chronione treści, środowisko wykonawcze uzyskuje i zapisuje w pamięci podręcznej licencję wymaganą do wyświetlania tych treści. Jeśli aplikacja zapisuje plik lokalnie, a licencja zezwala na odtwarzanie w trybie offline, użytkownik może wyświetlać treść w aplikacji AIR. Takie lokalne odtwarzanie w trybie offline jest możliwe nawet w sytuacji, gdy połączenie z serwerem zarządzania prawami do multimediów jest niedostępne. Za pomocą obiektu DRMManager i metody
preloadEmbeddedMetadata()
obiektu NetStream można wstępnie zbuforować kupon. Aplikacja nie musi uzyskiwać licencji potrzebnej do wyświetlania treści. Na przykład aplikacja może pobrać plik multimedialny i uzyskać kupon, gdy użytkownik jeszcze ma połączenie.
Aby wstępnie załadować kupon, należy pobrać obiekt DRMContentData za pomocą metody
preloadEmbeddedMetadata()
obiektu NetStream. Obiekt DRMContentData zawiera adres URL i domenę serwera uprawnień DRM, który może udostępnić licencję, oraz opisuje, czy wymagane jest uwierzytelnienie użytkownika. Na podstawie tej informacji można wywołać metodę
loadVoucher()
klasy DRMManager w celu uzyskania kuponu i zapisania go w buforze. Obieg pracy wstępnego wczytywania kuponów jest opisany w sekcji
Wstępne wczytywanie kuponów w celu odtwarzania offline
.
Zarządzanie sesją
Klasy DRMManager można także użyć do uwierzytelnienia użytkownika na serwerze uprawnień DRM i do zarządzania sesjami trwałymi.
Wywołanie metody
authenticate()
klasy DRMManager umożliwia nawiązanie sesji z serwerem uprawnień DRM. Po pomyślnym uwierzytelnieniu klasa DRMManager wywołuje obiekt DRMAuthenticationCompleteEvent. Ten obiekt zawiera token sesji. Token można zapisać w celu nawiązywania w przyszłości sesji bez konieczności ponownego wprowadzania poświadczeń konta przez użytkownika. Aby rozpocząć nową sesję uwierzytelnioną, należy przekazać token do metody
setAuthenticationToken()
. (Ustawienia serwera, który wygenerował token, określają termin ważności tego tokenu i jego inne atrybuty. Kod aplikacji AIR nie powinien bezpośrednio interpretować struktury danych tokenu, ponieważ struktura ta może ulec zmianie w przyszłych wersjach środowiska AIR).
Tokeny uwierzytelniania można przenosić na inne komputery. Aby chronić tokeny, można przechowywać je w zaszyfrowanym magazynie lokalnym środowiska AIR. Więcej informacji zawiera sekcja
Zaszyfrowany magazyn lokalny
.
Zdarzenia DRMStatus
Klasa DRMManager wywołuje obiekt DRMStatusEvent po pomyślnym zakończeniu wywoływania metody
loadVoucher()
.
Jeśli uzyskano kupon, właściwość
detail
(tylko w AIR) obiektu zdarzenia ma wartość: „DRM.voucherObtained”, a właściwość
voucher
zawiera obiekt DRMVoucher.
Jeśli kupon nie został uzyskany, właściwość
detail
(tylko w AIR) także ma wartość „DRM.voucherObtained”; jednak właściwość
voucher
jest wówczas równa
null
. Nieuzyskanie kuponu może wynikać np. z przypisania właściwości LoadVoucherSetting wartości
localOnly
i braku lokalnie buforowanego kuponu.
Jeśli wywołanie metody
loadVoucher()
nie zostanie pomyślnie zakończone, prawdopodobnie z powodu błędu uwierzytelniania lub komunikacji, klasa DRMManager wywoła obiekt zdarzenia DRMErrorEvent lub DRMAuthenticationErrorEvent.
Zdarzenia DRMAuthenticationComplete
Klasa DRMManager wywołuje obiekt DRMAuthenticationCompleteEvent, gdy użytkownik zostanie pomyślnie uwierzytelniony w wyniku wywołania metody
authenticate()
.
Obiekt DRMAuthenticationCompleteEvent zawiera token wielokrotnego użytku, który można wykorzystać do zachowywania uwierzytelnienia użytkownika między sesjami aplikacji. W celu ponownego nawiązania sesji token należy przekazać do metody
setAuthenticationToken()
klasy DRMManager. (Kod tworzący token ustawia jego atrybuty, takie jak termin ważności. Adobe nie udostępnia wywołań API służących do analizowania atrybutów tokenu).
Zdarzenia DRMAuthenticationError
Klasa DRMManager wywołuje obiekt DRMAuthenticationErrorEvent, gdy nie powiedzie się uwierzytelnienie użytkownika poprzez wywołanie metody
authenticate()
lub
setAuthenticationToken()
.
|
|
|