Beveiligingsoverwegingen bij het laden en afspelen van geluiden

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

De mogelijkheden van uw toepassing tot het verkrijgen van toegang tot geluidsgegevens worden mogelijk beperkt door het beveiligingsmodel van Flash Player of AIR. Elk geluid is onderhevig aan de beperkingen van twee verschillende beveiligingssandboxen: de sandbox voor de inhoud zelf (de 'inhoudssandbox') en de sandbox voor de toepassing of het object waarmee het geluid wordt geladen en afgespeeld (de 'eigenaarssandbox'). In het geval van inhoud van AIR in de sandbox met toepassingsbeveiliging zijn alle geluiden, inclusief de geluiden die uit andere domeinen werden geladen, toegankelijk voor inhoud in de sandbox met toepassingsbeveiliging. Voor inhoud in andere beveiligingssandboxen gelden echter dezelfde regels als voor inhoud die wordt uitgevoerd in Flash Player. Zie Beveiliging voor meer informatie over het beveiligingsmodel van Flash Player in het algemeen, en de definitie van sandboxen.

De inhoudssandbox bepaalt of gedetailleerde geluidsgegevens uit het geluid kunnen worden geëxtraheerd met behulp van de eigenschap id3 of de methode SoundMixer.computeSpectrum() . Deze sandbox legt geen beperkingen op aan het laden of afspelen van het geluidsbestand zelf.

Het oorspronkelijke domein van het geluidsbestand bepaalt de beveiligingsbeperkingen van de inhoudssandbox. Als een geluidsbestand zich in hetzelfde domein of dezelfde map bevindt als het SWF-bestand van de toepassing of het object waarmee het bestand wordt geladen, heeft de toepassing of het object volledige toegang tot dat geluidsbestand. Als het geluid uit een ander domein komt dan de toepassing, kan dit nog steeds in de inhoudssandbox worden gebracht door middel van een beleidsbestand.

Uw toepassing kan een SoundLoaderContext-object met de eigenschap checkPolicyFile als parameter doorgeven aan de methode Sound.load() . Als de eigenschap checkPolicyFile wordt ingesteld op true , weet Flash Player of AIR dat er moet worden gezocht naar een beleidsbestand op de server waarvan het geluid wordt geladen. Als er een beleidsbestand bestaat en dit bestand toegang verleent tot het domein van het SWF-bestand dat wordt geladen, kan het SWF-bestand het geluidsbestand laden, toegang krijgen tot de eigenschap id3 van het Sound-object en de methode SoundMixer.computeSpectrum() voor geladen geluiden oproepen.

De eigenaarssandbox bestuurt het lokale afspelen van de geluiden. De toepassing of het object waarmee het afspelen van een geluid wordt gestart, definieert de eigenaarssandbox.

Met de methode SoundMixer.stopAll() worden de geluiden gedempt in alle objecten SoundChannel die momenteel worden afgespeeld, mits deze aan de volgende criteria voldoen:

  • De geluiden zijn gestart door objecten met dezelfde eigenaarssandbox.

  • De geluiden zijn afkomstig uit een bron met een beleidsbestand dat toegang verleent tot het domein van de toepassing of het object waarmee de methode SoundMixer.stopAll() wordt opgeroepen.

In een AIR-toepassing wordt de inhoud in de beveiligingssandbox van de toepassing (inhoud die met de AIR-toepassing is geïnstalleerd) echter niet beperkt door deze beveiligingsbeperkingen.

Om na te gaan of de methode SoundMixer.stopAll() inderdaad alle geluiden die worden afgespeeld zal stopzetten, kan uw toepassing de methode SoundMixer.areSoundsInaccessible() aanroepen. Als die methode de waarde true retourneert, betekent dit dat een deel van de geluiden die worden afgespeeld, buiten de controle van de huidige eigenaarssandbox vallen en niet worden stopgezet door de methode SoundMixer.stopAll() .

Met de methode SoundMixer.stopAll() wordt de afspeelkop gestopt, zodat geen van de geluiden die uit externe bestanden zijn geladen, verder kunnen worden afgespeeld. Geluiden die zijn ingesloten in FLA-bestanden en met behulp van het Flash-ontwerpgereedschap aan frames in de tijdlijn zijn gekoppeld, worden mogelijk echter weer afgespeeld als de animatie naar een nieuw frame wordt verplaatst.