Poniższe elementy interfejsu API środowiska ActionScript 3.0 związane z dźwiękiem są objęte ograniczeniami wynikającymi z zabezpieczeń:
-
Metoda
SoundMixer.computeSpectrum()
— zawsze dozwolona dla kodu działającego w tym samym obszarze izolowanym, co plik dźwiękowy. Dla kodu działającego w innych obszarach izolowanych sprawdzane są zabezpieczenia.
-
Metoda
SoundMixer.stopAll()
— zawsze dozwolona dla kodu działającego w tym samym obszarze izolowanym, co plik dźwiękowy. Dla plików z innego obszaru izolowanego sprawdzane są zabezpieczenia.
-
Właściwość
id3
obiektu Sound — zawsze dozwolona dla plików SWF, które znajdują się w tym samym obszarze izolowanym, co plik dźwiękowy. Dla kodu działającego w innych obszarach izolowanych sprawdzane są zabezpieczenia.
Z każdym dźwiękiem są skojarzone dwa obszary izolowane — obszar izolowany treści i obszar izolowany właściciela:
-
Domena, z której pochodzi dźwięk, wyznacza obszar izolowany treści, a od niego zależy, czy dane można wyodrębnić z dźwięku za pośrednictwem właściwości
id3
i metody
SoundMixer.computeSpectrum()
.
-
Obiekt, który rozpoczął odtwarzanie dźwięku wyznacza obszar izolowany właściciela, a od niego zależy, czy dźwięk można zatrzymać za pomocą metody
SoundMixer.stopAll()
.
Ładując dźwięk za pomocą metody
load()
klasy Sound, można określić parametr
context
, którym należy uczynić obiekt SoundLoaderContext. Jeśli dla właściwości
checkPolicyFile
obiektu SoundLoaderContext zostanie przypisana wartość
true
, środowisko wykonawcze sprawdzi istnienie pliku reguł URL na serwerze, z którego ładowany jest dźwięk. Jeśli plik strategii istnieje i umożliwia dostęp z domeny ładującego kodu, wówczas kod może uzyskiwać dostęp do właściwości
id
obiektu Sound; w przeciwnym wypadku nie może. Ponadto, ustawiając właściwość
checkPolicyFile
, można zezwolić na stosowanie metody
SoundMixer.computeSpectrum()
do dźwięków załadowanych.
Metoda
SoundMixer.areSoundsInaccessible()
pozwala sprawdzić, czy wywołanie metody
SoundMixer.stopAll()
nie spowoduje zatrzymania wszystkich dźwięków z uwagi na niedostępność obszaru izolowanego niektórych dźwięków dla pliku wywołującego.
Wywołanie metody
SoundMixer.stopAll()
zatrzymuje te dźwięki, dla których obszar izolowany właściciela jest identyczny z obszarem izolowany pliku wywołującego metodę
stopAll()
. Powoduje także zatrzymanie dźwięków, których odtwarzanie zostało zainicjowane przez pliki SWF, które wywołały metodę
Security.allowDomain()
w celu zezwolenia na dostęp domenie pliku SWF wywołującego metodę
stopAll()
. Wszystkie pozostałe dźwięki nie są zatrzymywane, a obecność takich niezatrzymanych dźwięków można stwierdzić za pomocą metody
SoundMixer.areSoundsInaccessible()
.
Wywołanie metody
computeSpectrum()
jest możliwe tylko wówczas, gdy każdy odtwarzany dźwięk pochodzi z tego samego obszaru izolowanego co obiekt wywołujący metodę lub ze źródła, które udzieliło uprawnień obszarowi izolowanemu pliku wywołującego. Jeśli te warunki nie są spełnione, generowany jest wyjątek SecurityError. W przypadku dźwięków osadzonych załadowanych z biblioteki w pliku SWF uprawnień udziela się, wywołując metodę
Security.allowDomain()
w załadowanym pliku SWF. W przypadku dźwięków ze źródeł innych niż pliki SWF (pochodzących z wczytanych plików MP3 lub plików wideo) zezwolenie na dostęp do danych we wczytanej zawartości multimedialnej jest udzielane za pomocą pliku zasad URL na serwerze źródłowym.
Więcej informacji zawiera sekcja
Mechanizmy nadzoru programistów
oraz
Internetowe elementy sterujące (pliki zasad)
.
Aby uzyskać dostęp do danych dźwiękowych ze strumieni RTMP, należy przyznać dostęp do serwera. Aby przyznać dostęp do określonych katalogów na serwerze Flash Media Server, należy użyć właściwości
Client.audioSampleAccess
serwerowego języka ActionScript. Więcej informacji zawiera
Skorowidz serwerowego języka ActionScript
.