Er gelden beveiligingsbeperkingen voor de volgende API’s van ActionScript 3.0 voor geluiden:
-
De methode
SoundMixer.computeSpectrum()
: deze methode is altijd toegestaan voor code die wordt uitgevoerd in dezelfde beveiligingssandbox als het geluidsbestand. Voor code die in andere sandboxen wordt uitgevoerd zijn beveiligingscontroles beschikbaar.
-
De methode
SoundMixer.stopAll()
: deze methode is altijd toegestaan voor code die wordt uitgevoerd in dezelfde beveiligingssandbox als het geluidsbestand. Voor bestanden in andere sandboxen zijn beveiligingscontroles beschikbaar.
-
De eigenschap
id3
van de klasse Sound - Deze eigenschap is altijd toegestaan voor SWF-bestanden in dezelfde beveiligingssandbox als het geluidsbestand. Voor code die in andere sandboxen wordt uitgevoerd zijn beveiligingscontroles beschikbaar.
Elk geluid is gekoppeld aan twee soorten sandboxen: een inhoudssandbox en een eigenaarssandbox.
-
Het oorspronkelijke domein van het geluid is bepalend voor de inhoudssandbox. Deze sandbox bepaalt weer of uit het geluid gegevens kunnen worden geëxtraheerd via de eigenschap
id3
van het geluid en de methode
SoundMixer.computeSpectrum()
.
-
Het object dat het afspelen van het geluid heeft gestart, is bepalend voor de eigenaarssandbox. Deze sandbox bepaalt weer of het geluid kan worden gestopt via de methode
SoundMixer.stopAll()
.
Wanneer u het geluid laadt met de methode
load()
van de klasse Sound, kunt u een parameter
context
opgeven (een object SoundLoaderContext). Als u de eigenschap
checkPolicyFile
van het object SoundLoaderContext instelt op
true
, controleert de runtime of er een bestand met URL-beleid aanwezig is op de server waarvan het geluid wordt geladen. Als dat het geval is en in dit bestand is vastgelegd dat het domein van de ladende code toegang heeft, krijgt de code toegang tot de eigenschap
id
van het Sound-object. In alle andere gevallen wordt de toegang geweigerd. Via de eigenschap
checkPolicyFile
kan ook de methode
SoundMixer.computeSpectrum()
worden ingeschakeld voor geladen geluiden.
U kunt de methode
SoundMixer.areSoundsInaccessible()
gebruiken om vast te stellen of een aanroep van de methode
SoundMixer.stopAll()
tot gevolg heeft dat het afspelen van alle geluiden wordt gestopt, omdat de eigenaarssandbox van een of meer geluiden niet toegankelijk is voor de aanroeper.
Het aanroepen van de methode
SoundMixer.stopAll()
heeft tot gevolg dat het afspelen wordt gestopt van de geluiden waarvan de eigenaarssandbox dezelfde is als die van de aanroeper van
stopAll()
. De aanroep heeft eveneens tot gevolg dat het afspelen wordt gestopt van de geluiden waarvan het afspelen is gestart door SWF-bestanden die de methode
Security.allowDomain()
hebben aangeroepen om toegang te verlenen aan het domein van het SWF-bestand dat de methode
stopAll()
aanroept. Het afspelen van eventuele andere geluiden wordt niet gestopt. De aanwezigheid van deze geluiden kan worden vastgesteld door de methode
SoundMixer.areSoundsInaccessible()
aan te roepen.
De methode
computeSpectrum()
kan alleen worden aangeroepen als alle geluiden die worden afgespeeld afkomstig zijn uit de sandbox van het object dat de methode aanroept of uit een bron die toegang heeft verleend aan de sandbox van de aanroeper. Als niet aan deze voorwaarden wordt voldaan, wordt een uitzondering SecurityError gegenereerd. In het geval van geluiden die zijn geladen uit ingesloten geluiden in een bibliotheek in een SWF-bestand kan toegang worden verleend met een aanroep van de methode
Security.allowDomain()
in het geladen SWF-bestand. Voor geluiden die zijn geladen uit andere bronnen dan SWF-bestanden (zoals uit geladen MP3-bestanden of uit videobestanden) moet in een URL-beleidsbestand op de server van het bronobject toegang worden verleend tot gegevens in geladen media.
Zie
Controlemiddelen voor auteurs (ontwikkelaars)
en
Controlemiddelen voor websites (beleidsbestanden)
voor meer informatie.
Als u toegang wilt tot geluidsgegevens van RTMP-streams, moet u toegang verlenen tot de server. Met de ActionScript-eigenschap
Client.audioSampleAccess
aan de serverkant kunt u toegang verlenen tot bepaalde mappen op Flash Media Server. Zie de
Server-Side ActionScript Language Reference
voor meer informatie.