A classe NetStream fornece uma conexão de streaming unidirecional entre o Flash Player ou um aplicativo do AIR e o Flash Media Server ou o sistema de arquivos local. (A classe NetStream também suporta o download progressivo.) Um objeto NetStream é um canal em um objeto NetConnection. A classe NetStream envia quatro eventos relacionados ao DRM:
Evento
|
Descrição
|
drmAuthenticate
(somente AIR)
|
Definido na classe DRMAuthenticateEvent. Este evento é enviado quando um objeto NetStream tenta reproduzir conteúdo protegido que requer uma credencial de usuário para autenticação antes da reprodução.
As propriedades desse evento incluem as propriedades header, usernamePrompt, passwordPrompt e urlPrompt que podem ser usadas para obter e definir as credenciais do usuário. Esse evento ocorre repetidamente até que o objeto NetStream receba credenciais de usuário válidas.
|
drmError
|
Definido na classe DRMErrorEvent e enviado quando um objeto NetStream tenta reproduzir conteúdo protegido e encontra um erro relacionado com o DRM. Por exemplo, um objeto de evento de erro DRM é despachado quando a autorização do usuário falha. Este erro pode ocorrer porque o usuário não adquiriu os direitos de visualização do conteúdo. Isto também pode ocorrer porque o provedor de conteúdo não possui suporte para o aplicativo de visualização.
|
drmStatus
|
Definido na classe DRMStatusEvent. Este evento é enviado quando o conteúdo protegido começa a ser reproduzido (quando o usuário está autenticado e autorizado a reproduzir o conteúdo. O objeto DRMStatusEvent contém informações relacionadas ao voucher. As informações sobre o voucher incluem se o conteúdo pode ser disponibilizado offline ou quando o voucher expira e o conteúdo não pode mais se exibido.
|
status
|
Definido em events.StatusEvent e enviado apenas quando o aplicativo tenta reproduzir conteúdo protegido, chamando o método NetStream.play(). O valor da propriedade do código de status será "DRM.encryptedFLV".
|
A classe NetStream inclui os seguintes métodos específicos de DRM, para uso no AIR apenas:
Método
|
Descrição
|
resetDRMVouchers()
|
Exclui todos os dados de comprovação de gerenciamento de direitos digitais armazenados localmente em cache. O aplicativo deve baixar o voucher novamente para que o usuário possa acessar o conteúdo criptografado.
Por exemplo, o código a seguir remove todos os vouchers do cache:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Transmite um conjunto de credenciais de autenticação, a saber, nome de usuário, senha e tipo de autenticação, ao objeto NetStream para autenticação. Os tipos de autenticação válidos são
"drm"
e
"proxy"
. Com o tipo de autenticação
"drm"
, as credenciais fornecidas são autenticadas durante o Adobe Access. Com o tipo de autenticação
"proxy"
, as credenciais são autenticadas em comparação ao servidor proxy e devem ser compatíveis às solicitadas por ele. Por exemplo, uma empresa pode requerer que o aplicativo faça a autenticação em um servidor proxy antes que o usuário possa acessar a Internet. A opção do proxy permite este tipo de autenticação. A menos que seja usada a autenticação anônima, depois da autenticação proxy, o usuário ainda precisará ser autenticado comparando ao Adobe Access para obter o voucher e reproduzir o conteúdo. É possível reutilizar
setDRMAuthenticationCredentials()
, com a opção "
drm
" para autenticar durante o Adobe Access.
|
preloadEmbeddedMetadata()
|
Analisa se um arquivo de mídia local contém metadados incorporados. Quando metadados relacionados a DRM são encontrados, o AIR chama a função de retorno de chamada
onDRMContentData()
.
|
Além disso, no AIR, um objeto NetStream chama as funções de retorno de chamada
onDRMContentData()
e
onPlayStatus()
como resultado de uma chamada para o método
preloadEmbeddedMetaData()
. A função
onDRMContentData()
é chamada quando os metadados DRM são encontrados em um arquivo de mídia. A função
onPlayStatus()
é chamada quando o arquivo é analisado. As funções
onDRMContentData()
e
onPlayStatus()
devem ser definidas no objeto
client
atribuído à ocorrência do NetStream. Se você usar o mesmo objeto NetStream para pré-carregar vouchers e reproduzir conteúdo, aguarde pela chamada
onPlayStatus()
gerada pelo
preloadEmbeddedMetaData()
antes de iniciar a reprodução.
No seguinte código do AIR, o nome de usuário ("administrator"), a senha ("password") e o tipo de autenticação "drm" são definidos para a autenticação do usuário. O método setDRMAuthenticationCredentials() precisa fornecer credenciais que correspondam as credenciais conhecidas e aceitas pelo provedor de conteúdo. Estas credenciais são as mesmas credenciais de usuário que permitem a visualização do conteúdo. O código para reproduzir o vídeo e certificar-se de que foi feita uma conexão bem-sucedida ao streaming de vídeo não está incluída aqui.
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");
}
|
|
|