Uso da classe DRMManager

Flash Player 10.1 e posterior, Adobe AIR 1.5 e posterior

Use a classe DRMManager para gerenciar vouchers e sessões do servidor de direitos de mídia em aplicativos.

Gerenciamento de Vouchers (apenas no AIR)

Sempre que um usuário reproduz conteúdo protegido, o tempo de execução obtém e armazena a licença necessária para visualizar o conteúdo. Se o aplicativo salva o arquivo localmente e a licença permite a reprodução offline, o usuário pode visualizar o conteúdo no aplicativo do AIR. A reprodução offline local ocorre com sucesso mesmo se a conexão ao servidor de direitos de mídia não estiver disponível. Utilizando o DRMManager e o método preloadEmbeddedMetadata() , você pode pré-armazenar o voucher. O aplicativo não tem que obter a licença necessária para visualizar o conteúdo. Por exemplo, seu aplicativo pode baixar o arquivo de mídia e obter o voucher enquanto o usuário ainda está online.

Para pré-carregar um voucher, use o método preloadEmbeddedMetadata() do NetStream para obter um conteúdo do objeto DRMContentData. O objeto DRMContentData contém a URL e o domínio do servidor dos direitos de mídia que pode fornecer a licença e descreve se a autenticação é necessária. Com essas informações, você pode chamar o método loadVoucher() do DRMManager para obter o voucher e armazená-lo em cache. O fluxo de trabalho dos vouchers pré-carregados é descrito em mais detalhes em Pré-carregamento de vouchers para reprodução offline .

Gerenciamento de sessão

Você também pode usar o DRMManager para autenticar o usuário para um servidor de direitos de mídia e gerenciar sessões persistentes.

Chame o método authenticate() do DRMManager para estabelecer uma sessão com o servidor de direitos de mídia. Quando a autenticação for concluída com êxito, o DRMManager despachará um objeto DRMAuthenticationCompleteEvent. Esse objeto contém um token de sessão. Você pode salvar esse token para estabelecer sessões futuras, de forma que o usuário não precise fornecer suas credenciais de conta. Envie o token para o método setAuthenticationToken() para estabelecer uma sessão autenticada. (As configurações do servidor que geraram o sinal determinam a expiração do token e outros atributos. O código do aplicativo do AIR não deve interpretar a estrutura de dados do token, porque a estrutura pode alterar atualizações posteriores do AIR.)

É possível transferir tokens de autenticação para outros computadores. Para proteger os tokens, armazene-os no depósito local criptografado do AIR. Consulte Armazenamento local criptografado para obter mais informações.

Eventos do DRMStatus

O DRMManager despacha um objeto DRMStatusEvent após uma chamada bem-sucedida para o método loadVoucher() .

Se um voucher for obtido, a propriedade detail (apenas no AIR) do objeto de evento terá um valor: "DRM.voucherObtained", e a propriedade voucher conterá o objeto DRMVoucher.

Se um voucher não for obtido, a propriedade detail (apenas no AIR) ainda terá o valor: "DRM.voucherObtained"; no entanto, a propriedade voucher será null . Um voucher não pode ser obtido se, por exemplo, for utilizado LoadVoucherSetting de localOnly e não existir um voucher armazenado em cache localmente.

Se a chamada loadVoucher() não for concluída com êxito, talvez por causa de um erro de autenticação ou comunicação, o DRMManager despachará um objeto DRMErrorEvent ou DRMAuthenticationErrorEvent em vez disso.

Eventos DRMAuthenticationComplete

O DRMManager despacha um objeto DRMAuthenticationCompleteEvent quando um usuário é autenticado com êxito por meio de uma chamada do método authenticate() .

O objeto DRMAuthenticationCompleteEvent contém um token reutilizável que pode ser usado para persistir em autenticações do usuário em sessões do aplicativo. Passe esse token para o método setAuthenticationToken() do DRMManager, a fim de estabelecer novamente a sessão. (Os atributos do token como, por exemplo, sua expiração, são definidos pelo criador do token. A Adobe não fornece uma API para a examinar atributos de token).

Eventos DRMAuthenticationError

O DRMManager despacha um objeto DRMAuthenticationErrorEvent quando um usuário não pode ser autenticado com êxito por meio de uma chamada para os métodos authenticate() ou setAuthenticationToken() .