Pakket | flash.media |
Klasse | public class SoundLoaderContext |
Overerving | SoundLoaderContext Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
van de klasse Sound.
Houd rekening met het volgende beveiligingsmodel wanneer u deze klasse gebruikt:
- Een geluid laden en afspelen is niet toegestaan wanneer het aanroepende bestand zich in een netwerksandbox bevindt en het geluidsbestand lokaal wordt geladen.
- Standaard is het niet toegestaan een geluid te laden en af te spelen wanneer het aanroepende bestand lokaal is en probeert een extern geluid te laden en af te spelen. Een gebruiker moet hiervoor expliciet toestemming geven.
- Bepaalde bewerkingen die betrekking hebben op geluid zijn beperkt. De gegevens in een geladen geluid zijn niet toegankelijk voor een bestand in een ander domein, tenzij u een bestand met URL-beleid implementeert. API's die betrekking hebben op geluid en die onder deze beperking vallen, zijn de eigenschap
Sound.id3
en de methodenSoundMixer.computeSpectrum()
,SoundMixer.bufferTime
enSoundTransform()
.
In Adobe AIR is de inhoud in de application
-beveiligingssandbox (inhoud die met de AIR-toepassing is geïnstalleerd), echter niet beperkt tot deze beveiligingsbeperkingen.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
bufferTime : Number = 1000
Het aantal milliseconden dat nodig is voor het in een buffer voorladen van een streaming geluid voordat het geluid begint met streamen. | SoundLoaderContext | ||
checkPolicyFile : Boolean = false
Geeft op of de toepassing een bestand met URL-beleid moet downloaden van de server waarop het geladen geluid staat voordat het geluid wordt geladen. | SoundLoaderContext | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een nieuw object SoundLoaderContext. | SoundLoaderContext | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
bufferTime | eigenschap |
public var bufferTime:Number = 1000
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal milliseconden dat nodig is voor het in een buffer voorladen van een streaming geluid voordat het geluid begint met streamen.
U kunt de waarde van SoundLoaderContext.bufferTime
niet overschrijven door de algemene eigenschap SoundMixer.bufferTime
in te stellen. De eigenschap SoundMixer.bufferTime
beïnvloedt de buffertijd voor ingesloten streaming geluiden in een SWF-bestand en staat los van dynamisch gemaakte objecten Sound (dat wil zeggen, objecten Sound die zijn gemaakt in ActionScript).
checkPolicyFile | eigenschap |
public var checkPolicyFile:Boolean = false
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft op of de toepassing een bestand met URL-beleid moet downloaden van de server waarop het geladen geluid staat voordat het geluid wordt geladen. Deze eigenschap is van toepassing op geluid dat wordt geladen van buiten het eigen domein van het aanroepende bestand met de methode Sound.load()
.
Stelt deze eigenschap in op true
wanneer u een geluid wilt laden van buiten het eigen domein van het aanroepende bestand en wanneer het aanroepende bestand code bevat die toegang op laag niveau tot de geluidsgegevens nodig heeft. Voorbeelden van toegang op laag niveau tot de gegevens van een geluid zijn het verwijzen naar de eigenschap Sound.id3
van een object ID3Info of het aanroepen van de methode SoundMixer.computeSpectrum()
om geluidssamples van het geladen geluid op te halen. Wanneer u toegang probeert te krijgen tot geluidsgegevens zonder de eigenschap checkPolicyFile
op true
in te stellen tijdens het laden, wordt mogelijk de uitzondering SecurityError gegenereerd omdat het vereiste beleidsbestand niet is gedownload.
Wanneer u geen toegang op laag niveau nodig hebt tot de geluidsgegevens die u laadt, moet u de eigenschap checkPolicyFile
niet instellen op true
. Controleren of een beleidsbestand bestaat, kost netwerkbandbreedte waardoor de start van de download kan worden vertraagd. Doe dit daarom alleen indien noodzakelijk.
Wanneer u Sound.load()
aanroept met SoundLoaderContext.checkPolicyFile
ingesteld op true
, moet Flash Player of AIR een relevant URL-beleidsbestand downloaden of bepalen dat een dergelijk beleidsbestand niet bestaat voordat het opgegeven geluid wordt gedownload. Flash Player of AIR voert de volgende handelingen uit, in deze volgorde, om te bepalen of een beleidsbestand bestaat:
- Flash Player of AIR controleert of al beleidsbestanden zijn gedownload.
- Flash Player of AIR probeert eventuele in behandeling zijnde beleidsbestanden te downloaden die zijn opgegeven in aanroepen van
Security.loadPolicyFile()
. - Flash Player of AIR probeert een beleidsbestand te downloaden van de standaardlocatie die overeenkomt met de URL van het geluid (
/crossdomain.xml
op dezelfde server alsURLRequest.url
). (De URL van het geluid wordt opgegeven in de eigenschapurl
van het object URLRequest die aanSound.load()
van de constructorfunctie Sound wordt doorgegeven.)
In alle gevallen vereist Flash Player of AIR dat een geschikt beleidsbestand aanwezig is op de server van het geluid, dat dit toegang biedt tot het geluidsbestand op URLRequest.url
op basis van de locatie van het beleidsbestand en dat het toegang voor het domein van het aanroepende bestand biedt op basis van een of meer <allow-access-from>
-tags.
Wanneer u checkPolicyFile
op true
instelt, wacht Flash Player of AIR tot het beleidsbestand is gecontroleerd voordat het geluid wordt geladen. U moet wachten met het uitvoeren van bewerkingen op laag niveau op de geluidsgegevens, zoals het aanroepen van Sound.id3
ofSoundMixer.computeSpectrum()
, totdat de gebeurtenissen progress
encomplete
door het object Sound worden verzonden.
Wanneer u checkPolicyFile
op true
instelt, maar geen geschikt beleidsbestand wordt gevonden, wordt pas een foutbericht weergegeven wanneer u een bewerking uitvoert waarvoor een beleidsbestand is vereist, waarna Flash Player of AIR een uitzondering SecurityError
genereert. Nadat u een gebeurtenis complete
hebt ontvangen, kunt u testen of een relevant beleidsbestand is gevonden door de waarde van Sound.id3
binnen een blok try
binnen te halen en te controleren of een SecurityError
is gegenereerd.
Ga zorgvuldig met checkPolicyFile
om wanneer u geluid downloadt van een URL die HTTP-serveromleidingen gebruikt. Flash Player of AIR probeert beleidsbestanden op te halen die overeenkomen met de eigenschap url
van het object URLRequest die aan Sound.load()
is doorgegeven. Wanneer het laatste geluidsbestand van een andere URL afkomstig is vanwege HTTP-omleidingen, zijn de in eerste instantie gedownloade beleidsbestanden mogelijk niet van toepassing op de URL van het laatste geluidsbestand. Dit is de URL die van belang is in beveiligingskwesties.
In dit geval is er slechts één mogelijke oplossing. Nadat u een gebeurtenis progress
of complete
hebt ontvangen, kunt u de waarde van de eigenschap Sound.url
bekijken die de uiteindelijke URL van het geluid bevat. Vervolgens roept u de methode Security.loadPolicyFile()
aan met de URL van een beleidsbestand die u berekent op basis van de definitieve URL van het geluid Tot slot pollt u de waarde van Sound.id3
totdat geen uitzonderling wordt gegenereerd.
Dit is niet van toepassing op inhoud in de sandbox van de AIR-toepassing. Inhoud in de toepassingssandbox heeft altijd via programmacode toegang tot geluidsinhoud, onafhankelijk van de oorsprong.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Verwante API-elementen
SoundLoaderContext | () | Constructor |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt een nieuw object SoundLoaderContext.
ParametersbufferTime:Number (default = 1000 ) — Het aantal seconden dat nodig is voor het in een buffer voorladen van een streaming geluid voordat het geluid begint met streamen.
| |
checkPolicyFile:Boolean (default = false ) — Geeft aan of het bestaan van een URL-beleidsbestand moet worden gecontroleerd wanneer het object wordt geladen (true ) of niet.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
De eerste parameter van een object SoundLoaderContext (context
) wordt gebruikt om de standaardbufferwaarde te vergroten met een tot drie seconden. (De waarde is in milliseconden.) Wanneer de tweede parameter van het object SoundLoaderContext is ingesteld op true
, controleert Flash Player of een bestand met interdomeinbeleid beschikbaar is bij het laden van het object. Hier wordt deze ingesteld op de standaardwaarde false
, zodat niet wordt gecontroleerd op een beleidsbestand. De methode load()
van het geluidsobject gebruikt de contextinstelling om ervoor te zorgen dat het voorladen van de geluidsstream in een buffer drie seconden in beslag neemt voordat het geluid begint te streamen. Het object URLRequest
bepaalt de locatie van het bestand (een podcast van Adobe). Wanneer bij het laden van het geluidsbestand de fout IOErrorEvent.IO_ERROR
optreedt, wordt de methode errorHandler()
aangeroepen.
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.events.IOErrorEvent; public class SoundLoaderContextExample extends Sprite { public function SoundLoaderContextExample() { var snd:Sound = new Sound(); var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); var context:SoundLoaderContext = new SoundLoaderContext(3000, false); snd.load(req, context); snd.play(); snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function errorHandler(errorEvent:IOErrorEvent):void { trace("The sound could not be loaded: " + errorEvent.text); } } }
Wed Jun 13 2018, 11:42 AM Z