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()
.
|
|
|