Atualizando o Flash Player para suportar o Flash Access

Flash Player 10.1 e posterior

Para suportar o Flash Access o Flash Player requer o módulo do Flash Access. Quando o Flash Player tenta reproduzir conteúdo protegido, o tempo de execução indica se o módulo ou uma nova versão do Flash Player precisam ser baixados. Desta maneira, o Flash Player fornece aos desenvolvedores SWF a opção de não atualizar caso queiram.

Na maioria dos casos, para reproduzir conteúdo protegido, os desenvolvedores de SWF atualizam para o módulo requerido pelo Flash Access ou pelo player. Para atualizar, pode-se utilizar a API SystemUpdater para obter a última versão do módulo Flash Access ou do Flash Player.

A API SystemUpdater permite apenas uma atualização por vez. O código de erro 2201 indica que uma atualização já está em andamento na ocorrência atual do tempo de execução ou em outra ocorrência. Por exemplo, se uma atualização está em andamento em uma ocorrência do Flash Player no Internet Explorer, uma atualização não poderá ser executada em uma ocorrência em execução no Firefox.

A API SystemUpdater é suportada para plataformas de desktop apenas.

Nota: Em versões do Flash Player anteriores a 10.1, utilize o mecanismo de atualização suportado em versões anteriores do player (baixe e instale manualmente do site www.adobe.com ou ExpressInstall). O instalador do AIR também manipula atualizações necessárias para o Flash Access e não suporta a API SystemUpdater.

Procurando um evento de atualização

Quando uma atualização do módulo Flash Access é necessária, o objeto NetStream envia um NetStatusEvent com um valor de código DRM.UpdateNeeded. Este valor indica que o objeto NetStream não pode reproduzir o stream protegido com nenhum dos módulos do Flash Access instalados. Procure por este evento e chame o seguinte código:

SystemUpdater.update(flash.system.SystemUpdaterType.DRM)
Este código atualiza o módulo Flash Access instalado no player. A aprovação do usuário para esta atualização de módulo não é necessária.

Caso o módulo Flash Access não seja encontrado, um erro é exibido. Consulte o passo 3 do Fluxo de trabalho detalhado.

Nota: Caso play() é chamado em um stream criptografado em players anteriores ao 10.1, um NetStatusEvent como valor de código de NetStream.Play.StreamNotFound é enviado. Em versões anteriores de players, utilize o mecanismo de atualização suportado para estes players (baixe e instale manualmente do site www.adobe.com ou ExpressInstall).

Quando uma atualização para o próprio player é necessária o objeto SystemUpdater envia um StatusEvent com um código de DRM.UpdateNeededButIncompatible. Para uma atualização do player, a aprovação do usuário é necessária. Forneça em seu aplicativo um interface para que o usuário concorde e inicie a atualização do player. Procure pelo evento StatusEvent e chame o seguinte código:

SystemUpdater.update(flash.system.SystemUpdaterType.SYSTEM);
Este código inicia a atualização do player.

Eventos adicionais da classe SystemUpdater estão documentados em Referência do ActionScript 3.0 para a plataforma Adobe Flash.

Depois que a atualização do player estiver completo, o usuário é redirecionado para a página onde a atualização tem início. O módulo Flash Access é baixado, e o stream pode ser reproduzido.