Korzystanie z klasy DRMErrorEvent

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

Środowiska Adobe Flash Player i Adobe AIR wywołują obiekt DRMErrorEvent, gdy obiekt NetStream przy próbie odtworzenia chronionej treści napotka na błąd powiązany z mechanizmem DRM. Jeżeli poświadczenia użytkownika nie są prawidłowe w aplikacji AIR, obiekt DRMAuthenticateEvent będzie wielokrotnie wywoływany, aż użytkownik wprowadzi poprawne poświadczenia lub aplikacja nie zezwoli na kolejne próby. Aplikacja powinna wykrywać wszelkie inne zdarzenia błędów DRM, aby być w stanie reagować na takie błędy. W środowisku Flash Player aplikacja wykrywa wszystkie zdarzenia błędów mechanizmu DRM, aby wykrywać, rozpoznawać i obsługiwać błędy powiązane z mechanizmem DRM.

Nawet jeśli poświadczenia użytkownika są ważne, warunki kuponu treści mogą zakazywać użytkownikowi wyświetlania treści zaszyfrowanych. Użytkownikowi może na przykład zostać odmówiony dostęp przy próbie wyświetlenia treści w nieautoryzowanej aplikacji. Nieautoryzowana aplikacja to aplikacja, która nie została zatwierdzona przez wydawcę zaszyfrowanej treści. W takim wypadku wywoływany jest obiekt DRMErrorEvent.

Zdarzenia błędów mogą być także wywoływane, jeśli treść jest uszkodzona lub wersja aplikacji różni się od określonej w kuponie. Aplikacja musi zapewniać odpowiedni mechanizm obsługi błędów.

Właściwości klasy DRMErrorEvent

Pełną listę błędów zawiera część Kody błędów w środowisku wykonawczym w Skorowidzu ActionScript 3.0. Błędy powiązane z mechanizmem DRM rozpoczynają się od numeru 3300.

Tworzenie funkcji obsługi zdarzenia DRMErrorEvent

W poniższym przykładzie tworzona jest funkcja obsługi zdarzenia dla obiektu NetStream, z którego zdarzenie pochodzi. Jest wywoływana, gdy obiekt NetStream napotka błąd przy próbie odtwarzania treści chronionych. Zazwyczaj po napotkaniu błędu aplikacja wykonuje szereg zadań o charakterze porządkowym. Następnie informuje użytkownika o błędzie i oferuje opcje rozwiązania problemu.

private function drmErrorEventHandler(event:DRMErrorEvent):void  
{ 
    trace(event.toString()); 
}