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 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 em relação ao Flash 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 Flash Access para obter o voucher e reproduzir o conteúdo. Você pode usar setDRMAuthenticationcredentials() uma segunda vez, com a opção "drm" para autenticar no Flash 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 para o AIR, nome de usuário (“administrator”), senha (“password”) e o tipo de autenticação “drm” são definidos para autenticar o 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");
}