Membros e eventos relacionados a DRM da classe NetStream

Flash Player 10.1 e posterior, Adobe AIR 1.0 e posterior

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"); 
}