Considerações sobre segurança ao carregar e reproduzir sons

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

A capacidade do aplicativo de acessar dados de som podem ser limitadas de acordo com o modelo de segurança do Flash Player ou do AIR. Cada som está sujeito a restrições de duas caixas de proteção de segurança, a caixa de proteção do próprio conteúdo (a “caixa de proteção do conteúdo”) e a caixa de proteção do aplicativo ou do objeto que carrega e reproduz o som (a “caixa de proteção do proprietário”). Para conteúdo de aplicativo do AIR na caixa de proteção do aplicativo, todos os sons, inclusive aqueles carregados de outros domínios, são acessíveis ao conteúdo na caixa de proteção de segurança do aplicativo. No entanto conteúdo em outras caixas de proteção de segurança observam as mesmas regras que o conteúdo em execução no Flash Player. Para obter mais informações sobre o modelo de segurança do Flash Player em geral e sobre a definição de caixas de proteção, consulte Segurança .

A caixa de proteção do conteúdo controla se dados de som detalhados podem ser extraídos do som usando a propriedade id3 ou o método SoundMixer.computeSpectrum() . Ele não restringe o carregamento ou a reprodução do próprio arquivo de som.

O domínio de origem do arquivo de som define as limitações de segurança da caixa de proteção do conteúdo. Geralmente, se um arquivo de som está localizado no mesmo domínio ou pasta que o arquivo SWF do aplicativo ou do objeto que o carrega, o aplicativo ou o objeto terá acesso total àquele arquivo de som. Se o som for proveniente de um domínio diferente do domínio do aplicativo, ele ainda poderá ser trazido para a caixa de proteção do conteúdo usando um arquivo de política.

O aplicativo pode passar um objeto SoundLoaderContext com uma propriedade checkPolicyFile como parâmetro para o método Sound.load() . A configuração da propriedade checkPolicyFile como true instrui o Flash Player ou o AIR a procurar um arquivo de política no servidor onde o som é carregado. Se existir um arquivo de política e ele conceder acesso ao domínio do arquivo SWF que está sendo carregado, o arquivo SWF poderá carregar o arquivo de som, acessar a propriedade id3 do objeto Sound e chamar o método SoundMixer.computeSpectrum() de sons carregados.

A caixa de proteção do proprietário controla a reprodução local dos sons. O aplicativo ou o objeto que inicia a reprodução de um som define a caixa de proteção do proprietário.

O método SoundMixer.stopAll() silencia os sons em todos os objetos SoundChannel que estão sendo reproduzidos no momento, desde que atendam aos seguintes critérios:

  • Os sons foram iniciados por objetos dentro da mesma caixa de proteção do proprietário.

  • Os sons são provenientes de uma origem com um arquivo de política que concede acesso ao domínio do aplicativo ou objeto que chama o método SoundMixer.stopAll() .

Contudo, em um aplicativo do AIR, o conteúdo na caixa de proteção de segurança do aplicativo (conteúdo instalado com o aplicativo do AIR) não é restringido por essas limitações de segurança.

Para descobrir se o método SoundMixer.stopAll() realmente interromperá todas os sons em reprodução, o aplicativo pode chamar o método SoundMixer.areSoundsInaccessible() . Se esse método retornar um valor de true, alguns dos sons que estão sendo reproduzidos estarão fora do controle da caixa de proteção do proprietário atual e não serão interrompidos pelo método SoundMixer.stopAll() .

O método SoundMixer.stopAll() também interrompe a continuação do indicador da reprodução para todos os sons que foram carregados de arquivos externos. No entanto sons que foram incorporados em arquivos FLA e anexados a quadros na linha do tempo usando a ferramenta de autoria do Flash talvez iniciem a reprodução novamente se a animação mover para um novo quadro.