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.