Względy bezpieczeństwa podczas ładowania i odtwarzania dźwięków

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Możliwość uzyskiwania przez aplikację dostępu do danych dźwiękowych można ograniczyć zgodnie z modelem zabezpieczeń programu Flash Player lub AIR. Każdy dźwięk podlega ograniczeniom z dwu różnych obszarów izolowanych: obszaru izolowanego przeznaczonego dla samej treści (zwanego obszarem izolowanym treści) oraz obszaru izolowanego aplikacji lub obiektu ładującego dźwięk (obszaru izolowanego właściciela). W przypadku treści aplikacji środowiska AIR w obszarze izolowanym wszystkie dźwięki, w tym te załadowane z innych domen, są dostępne dla treści obszaru izolowanego aplikacji. Zawartość pozostałych obszarów izolowanych zabezpieczeń musi jednak spełniać te same reguły, które obowiązują wobec treści w programie Flash Player. Więcej informacji ogólnych dotyczących modelu zabezpieczeń programu Flash Player oraz definicji obszarów izolowanych zawiera rozdział Zabezpieczenia .

Obszar izolowany treści kontroluje, czy szczegółowe dane dźwiękowe można wyodrębnić z dźwięku za pomocą właściwości id3 lub metody SoundMixer.computeSpectrum() . Nie ogranicza on jednak ładowania ani odtwarzania samych dźwięków.

Domena pochodzenia pliku dźwiękowego definiuje ograniczenia zabezpieczeń obszaru izolowanego treści. W ogólnym przypadku, jeśli plik dźwiękowy znajduje się w tej samej domenie, co plik SWF aplikacji lub obiektu, który go ładuje, aplikacja lub obiekt będzie mieć pełny dostęp do tego pliku dźwiękowego. Jeśli dźwięk pochodzi z domeny innej niż sama aplikacja, nadal może zostać przeniesiony do tego samego obszaru izolowanego za pomocą pliku strategii.

Aplikacja może przekazywać obiekt SoundLoaderContext z właściwością checkPolicyFile jako parametr do metody Sound.load() . Ustawienie właściwości checkPolicyFile na wartość true powoduje, że program Flash Player lub środowisko AIR poszukuje pliku strategii na serwerze, z którego ładowany jest dźwięk. Jeśli plik strategii istnieje i umożliwia dostęp do domeny ładowanego pliku SWF, wówczas plik SWF może załadować plik dźwiękowy, uzyskać dostęp do właściwości id3 obiektu Sound, a następnie wywołać metodę SoundMixer.computeSpectrum() dla ładowanych dźwięków.

Obszar izolowany właściciela steruje lokalnie odtwarzaniem dźwięków. Obszar izolowany właściciela definiuje aplikacja lub obiekt rozpoczynający odtwarzanie dźwięku.

Metoda SoundMixer.stopAll() wycisza dźwięki we wszystkich obecnie odtwarzanych obiektach SoundChannel, o ile spełniają one następujące kryteria:

  • Dźwięki zostały uruchomione przez obiekty w tym samym obszarze izolowanym właściciela.

  • Dźwięki pochodzą ze źródła z plikiem strategii przydzielającym dostęp do domeny aplikacji lub obiektu wywołującego metodę SoundMixer.stopAll() .

Jednak w aplikacji AIR zawartość obszaru izolowanego aplikacji (zawartość instalowana razem z aplikacją AIR) nie jest ograniczana przez te reguły zabezpieczeń.

W celu sprawdzenia, czy metoda SoundMixer.stopAll() faktycznie spowoduje zatrzymanie wszystkich odtwarzanych dźwięków, aplikacja może wywołać metodę SoundMixer.areSoundsInaccessible() . Jeśli metoda ta zwróci wartość true, niektóre z dźwięków odtwarzanych znajdą się poza kontrolą bieżącego obszaru izolowanego właściciela i nie zostaną zatrzymane przez metodę SoundMixer.stopAll() .

Metoda SoundMixer.stopAll() powoduje ponadto zatrzymanie głowicy odtwarzania dla wszystkich dźwięków załadowanych z plików zewnętrznych. Dźwięki osadzone w pliku FLA i dołączone do klatek na osi czasu za pomocą narzędzia do tworzenia treści Flash Authoring mogą zostać ponownie uruchomione po przejściu animacji do następnej klatki.