Programmets möjligheter att nå ljuddata kan vara begränsade enligt säkerhetsmodellen i Flash Player eller AIR. Varje ljud begränsas av två olika säkerhetssandlådor, sandlådan för innehållet (”innehållssandlådan”) och sandlådan för programmet eller objektet som läses in och spelar upp ljudet (”ägarsandlådan”). När det gäller AIR-programinnehåll i säkerhetssandlådan application, är alla ljud (även dem som läses in från andra domäner) tillgängliga för innehållet i säkerhetssandlådan application. Innehåll i andra säkerhetssandlådor följer emellertid samma regler som innehåll som körs i Flash Player. Mer information om säkerhetsmodellen i Flash Player i allmänhet, och definitionen av sandlåda finns i avsnittet
Säkerhet
.
Innehållssandlådan styr om detaljerad ljuddata kan extraheras från ljudet med
id3
-egenskapen eller
SoundMixer.computeSpectrum()
-metoden. Den begränsar inte inläsningen eller uppspelningen av själva ljudfilen.
Ursprungsdomänen för ljudfilen definierar säkerhetsbegränsningarna för innehållssandlådan. Vanligtvis har programmet eller objektet fullständig åtkomst till ljudfilen om en den finns i samma domän eller mapp som SWF-filen för programmet eller objektet som läser in den. Om ljudet kommer från en annan domän än programmet kan det fortfarande läsas in till innehållssandlådan via en principfil.
Programmet kan överföra ett SoundLoaderContext-objekt med en
checkPolicyFile
-egenskap som en parameter till
Sound.load()
-metoden. Om du sätter egenskapen
checkPolicyFile
till
true
söker Flash Player eller AIR efter en principfil på servern som ljudet läses in från. Om det finns en principfil och den godkänner domänen för den inläsande SWF-filen, kan SWF-filen läsa in ljudfilen, få åtkomst till
id3
-egenskapen i Sound-objektet och anropa
SoundMixer.computeSpectrum()
-metoden för inlästa ljud.
Ägarsandlådan styr lokal uppspelning av ljuden. Programmet eller objektet som startar uppspelningen av ett ljud definieras som ägarsandlådan.
Metoden
SoundMixer.stopAll()
avbryter ljuden i alla SoundChannel-objekt som spelas upp om de uppfyller följande kriterier:
-
Ljuden startades av objekt inom samma ägarsandlåda.
-
Ljuden kommer från en källa med en principfil som godkänner åtkomst till domänen för programmet eller objektet som anropar
SoundMixer.stopAll()
-metoden.
I ett AIR-program begränsas emellertid inte innehåll i säkerhetssandlådan application (innehåll som installeras med AIR-programmet) av de här säkerhetsbegränsningarna.
För att ta reda på om
SoundMixer.stopAll()
-metoden faktiskt kommer att stoppa alla ljud som spelas upp kan programmet anropa metoden
SoundMixer.areSoundsInaccessible()
. Om metoden returnerar värdet
true
omfattas några av ljuden som spelas upp inte av styrningen från den aktuella ägarsandlådan och kommer inte att stoppas av
SoundMixer.stopAll()
-metoden.
Metoden
SoundMixer.stopAll()
stoppar också spelhuvudet från uppspelning av ljud som lästes in från externa filer. Däremot kan ljud som är inbäddade i FLA-filer och kopplade till bildrutor på tidslinjen som använder Flash-utvecklingsverktyget börja spelas upp igen om animeringen flyttas till en ny bildruta.