La clase NetStream proporciona una conexión de corriente unidireccional continua entre Flash Player o una aplicación de AIR y Flash Media Server o el sistema de archivos local. (La clase NetStream también admite la descarga progresiva). Un objeto NetStream es un canal dentro de un objeto NetConnection. La clase NetStream distribuye cuatro eventos relacionados con DRM:
Evento
|
Descripción
|
drmAuthenticate
(solo AIR)
|
Definido por la clase DRMAuthenticateEvent. Este evento se distribuye cuando un objeto NetStream intenta reproducir contenido protegido que requiere credenciales de usuario para su autenticación antes de la reproducción.
Entre las propiedades de este evento se encuentran header, usernamePrompt, passwordPrompt y urlPrompt, que pueden utilizarse para obtener y configurar las credenciales del usuario. Este evento sucede reiteradas veces hasta que el objeto NetStream recibe unas credenciales de usuario válidas.
|
drmError
|
Definido en la clase DRMErrorEvent y distribuido cuando un objeto NetStream intenta reproducir contenido protegido y se produce un error relacionado con DRM. Por ejemplo: si falla la autorización del usuario, se distribuye un objeto de evento de error de DRM. Este error puede producirse porque el usuario no ha adquirido los derechos para ver el contenido. También puede aparecer porque el proveedor de contenido no admite la aplicación de visionado.
|
drmStatus
|
Definido en la clase DRMStatusEvent. Este evento se distribuye cuando el contenido protegido comienza a reproducirse (cuando el usuario está autenticado y autorizado para reproducir el contenido). El objeto DRMStatusEvent contiene información relativa a la licencia. La licencia contiene información sobre si el contenido puede estar disponible fuera de línea o cuándo vence la licencia y deja de poder verse el contenido.
|
status
|
Definido en events.StatusEvent y solo se distribuye cuando la aplicación intenta reproducir contenido protegido invocando el método NetStream.play(). El valor de la propiedad de código de estado es "DRM.encryptedFLV".
|
La clase incluye los siguientes métodos específicos de DRM, solo para su uso en AIR:
Método
|
Descripción
|
resetDRMVouchers()
|
Elimina todos los datos de la licencia de administración de derechos digitales (DRM) almacenados en caché local. Para que el usuario pueda acceder al contenido cifrado, la aplicación debe volver a descargar las licencias.
Por ejemplo, el siguiente código elimina todas las licencias de la caché:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Pasa al objeto NetStream una serie de credenciales de autenticación, a saber; nombre de usuario, contraseña y tipo de autenticación, para fines de autenticación. Los tipos de autenticación válidos son
"drm"
y
"proxy"
. Con el tipo de autenticación
"drm"
, la credenciales proporcionadas se autentican con el servidor Adobe Access. Con el tipo de autenticación
"proxy"
, las credenciales se autentican con el servidor proxy y deben coincidir con las que exige el servidor proxy. Por ejemplo, una empresa puede requerir que la aplicación se autentique con un servidor proxy antes de que el usuario pueda acceder a Internet. La opción de proxy permite este tipo de autenticación. A menos que se utilice la autenticación anónima, después de la autenticación proxy el usuario aún necesita autenticarse con Adobe Access para obtener la licencia y poder reproducir el contenido. Se puede utilizar
setDRMAuthenticationCredentials()
una segunda vez, con la opción “
drm
”, para realizar la autenticación con Adobe Access.
|
preloadEmbeddedMetadata()
|
Analiza un archivo de medios local para metadatos incorporados. Cuando se encuentran metadatos relacionados con DRM, AIR llama a la función callback
onDRMContentData()
.
|
Asimismo, en AIR, un objeto NetStream llama a las funciones callback
onDRMContentData()
y
onPlayStatus()
como resultado de una llamada al método
preloadEmbeddedMetaData()
. La función
onDRMContentData()
se llama cuando los metadatos DRM se encuentran en un archivo de medios. La función
onPlayStatus()
se llama cuando el archivo se ha analizado. Las funciones
onDRMContentData()
y
onPlayStatus()
se deben definir en el objeto
client
asignado a la instancia de NetStream. Si utiliza el mismo objeto NetStream para precargar licencias y reproducir contenido, espere la llamada a
onPlayStatus()
generada mediante
preloadEmbeddedMetaData()
antes de comenzar la reproducción.
En el siguiente código para AIR se configuran el nombre de usuario (“administrator”), la contraseña (“password”) y el tipo de autenticación “drm” para autenticar al usuario. El método setDRMAuthenticationCredentials() debe proporcionar credenciales que coincidan con las guardadas y aceptadas por el proveedor de contenido. Estas credenciales son las mismas que permiten al usuario ver el contenido. No se incluye aquí el código para reproducir el vídeo y verificar que se haya realizado una conexión satisfactoria al flujo de vídeo.
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");
}
|
|
|