Die NetStream-Klasse stellt eine unidirektionale Streaming-Verbindung zwischen Flash Player oder einer AIR-Anwendung und Flash Media Server oder dem lokalen Dateisystem zur Verfügung. (Die NetStream-Klasse unterstützt auch progressive Downloads.) Ein NetStream-Objekt ist ein Kanal innerhalb eines NetConnection-Objekts. Die NetStream-Klasse löst vier Ereignisse in Bezug auf DRM aus:
Ereignis
|
Beschreibung
|
drmAuthenticate
(Nur AIR)
|
In der DRMAuthenticateEvent-Klasse definiert. Dieses Ereignis wird ausgelöst, wenn ein NetStream-Objekt versucht, geschützten Inhalt wiederzugeben, für den vor der Wiedergabe eine Benutzeranmeldung zur Authentifizierung erforderlich ist.
Zu den Eigenschaften dieses Ereignisses zählen header, usernamePrompt, passwordPrompt und urlPrompt. Hiermit können die Benutzerinformationen eingeholt und eingestellt werden. Das Ereignis tritt so lange auf, bis das NetStream-Objekt gültige Benutzerinformationen erhält.
|
drmError
|
Ist in der DRMErrorEvent-Klasse definiert und wird ausgelöst, wenn ein NetStream-Objekt versucht, geschützten Inhalt wiederzugeben, dabei aber ein DRM-Fehler auftritt. Ein DRM-Fehler wird zum Beispiel ausgelöst, wenn die Benutzerautorisierung fehlschlägt. Dieser Fehler kann auftreten, wenn der Benutzer keine Berechtigung zum Anzeigen des Inhalts erworben hat. Eine weitere Fehlerursache liegt vor, wenn der Inhaltsanbieter die Anzeigeanwendung nicht unterstützt.
|
drmStatus
|
In der DRMStatusEvent-Klasse definiert. Dieses Ereignis wird ausgelöst, wenn die Wiedergabe des geschützten Inhalts beginnt (wenn der Benutzer authentifiziert wurde und zum Abspielen des Inhalts berechtigt ist). Das DRMStatusEvent-Objekt enthält Informationen zum Gutschein. Zu den Gutscheininformationen zählen Angaben dazu, ob die Inhalte offline bereitgestellt werden können oder wann der Gutschein abläuft und die Inhalte nicht mehr angezeigt werden können.
|
status
|
Ist in events.StatusEvent definiert und wird nur ausgelöst, wenn die Anwendung versucht, geschützten Inhalt durch Aufrufen der NetStream.play()-Methode wiederzugeben. Der Wert der Statuscode-Eigenschaft lautet „DRM.encryptedFLV“.
|
Die NetStream-Klasse enthält die folgenden DRM-spezifischen Methoden nur zur Verwendung in AIR:
Methode
|
Beschreibung
|
resetDRMVouchers()
|
Löscht alle lokal zwischengespeicherten DRM-Gutscheindaten (DRM = Digital Rights Management). Die Anwendung muss die Gutscheine erneut herunterladen, damit der Benutzer auf die verschlüsselten Inhalte zugreifen kann.
Mit dem folgenden Code werden zum Beispiel alle Gutscheine aus dem Cache-Speicher entfernt:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Übergibt die Authentifizierungsinformationen (also Benutzername, Kennwort und Authentifizierungstyp) zur Authentifizierung an das NetStream-Objekt. Folgende Authentifizierungstypen sind gültig:
„drm"
und
„proxy"
. Mit dem Authentifizierungstyp
„drm"
werden die Benutzerinformationen für Adobe Access authentifiziert. Beim Authentifizierungstyp
„proxy"
werden die Benutzerinformationen für den Proxyserver authentifiziert und müssen mit den vom Proxyserver angeforderten Benutzerinformationen übereinstimmen. Beispielsweise kann ein Unternehmen verlangen, dass die Anwendung über einen Proxyserver authentifiziert wird, bevor der Benutzer auf das Internet zugreifen kann. Die Proxy-Option ermöglicht diese Art der Authentifizierung. Sofern keine anonyme Authentifizierung verwendet wird, muss sich der Benutzer nach der Proxyauthentifizierung immer noch für Adobe Access authentifizieren, um den Gutschein zu erhalten und den Inhalt abzuspielen. Sie können
setDRMAuthenticationCredentials()
ein zweites Mal verwenden, mit der
drm
-Option, um die Authentifizierung für Adobe Access auszuführen.
|
preloadEmbeddedMetadata()
|
Sucht in einer lokalen Mediendatei nach eingebetteten Metadaten. Wenn DRM-relevante Metadaten gefunden werden, ruft AIR die
onDRMContentData()
-Rückruffunktion auf.
|
Zusätzlich ruft ein NetStream-Objekt in AIR die Rückruffunktionen
onDRMContentData()
und
onPlayStatus()
als Ergebnis eines Aufrufs der
preloadEmbeddedMetaData()
-Methode auf. Die
onDRMContentData()
-Funktion wird aufgerufen, wenn in einer Mediendatei DRM-Metadaten gefunden werden. Die
onPlayStatus()
-Funktion wird aufgerufen, wenn die Datei analysiert wurde. Die Funktionen
onDRMContentData()
und
onPlayStatus()
müssen für das
client
-Objekt definiert sein, das der NetStream-Instanz zugeordnet ist. Wenn Sie dasselbe NetStream-Objekt verwenden, um Gutscheine vorauszuladen und Inhalte abzuspielen, warten Sie vor der Wiedergabe auf den Aufruf von
onPlayStatus()
, der von
preloadEmbeddedMetaData()
generiert wird.
Im folgenden Code für AIR wurden der Benutzername („administrator“), das Kennwort („password“) und der Authentifizierungstyp „drm“ zur Authentifizierung des Benutzers festgelegt. Die setDRMAuthenticationCredentials()-Methode muss Benutzerinformationen übergeben, die denen entsprechen, die beim Inhaltsanbieter bekannt sind und akzeptiert werden. Dies sind die Benutzerinformationen, die die Anzeige des Inhalts ermöglichen. Der Code für das Abspielen des Videos und zur Überprüfung der Verbindung zum Videostream werden hier nicht angegeben.
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");
}
|
|
|