Paket | flash.media |
Klasse | public class SoundLoaderContext |
Vererbung | SoundLoaderContext Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
-Methode der Soundklasse übergeben.
Beachten Sie bei Verwendung dieser Klasse das folgende Sicherheitsmodell:
- Sounddaten können nicht geladen und wiedergegeben werden, wenn sich die aufrufende Datei in einer Netzwerk-Sandbox befindet und die zu ladende Sounddatei lokal gespeichert ist.
- In der Standardeinstellung ist das Laden und die Wiedergabe von Sounddaten nicht zulässig, wenn über die aufrufende lokale Datei Sound remote geladen und wiedergegeben werden soll. Benutzer müssen für diesen Vorgang eine explizite Berechtigung erteilen.
- Für bestimmte Vorgänge bei Sounddaten liegen Beschränkungen vor. Auf die Daten in einem geladenen Sound kann nicht von einer Datei in einer anderen Domäne zugegriffen werden, es sei denn, Sie implementieren eine URL-Richtliniendatei. Zu den soundbezogenen APIs, die unter diese Beschränkung fallen, zählen die
Sound.id3
-Eigenschaft sowie die MethodenSoundMixer.computeSpectrum()
,SoundMixer.bufferTime
undSoundTransform()
.
In Adobe AIR unterliegt Inhalt in der Sicherheitssandbox der Anwendung
(Inhalt, der mit der AIR-Anwendung installiert wird) nicht diesen Sicherheitseinschränkungen.
Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Eigenschaft | Definiert von | ||
---|---|---|---|
bufferTime : Number = 1000
Die Anzahl der Millisekunden zum Vorausladen eines Streamingsounds in einen Puffer vor dem Streaming. | SoundLoaderContext | ||
checkPolicyFile : Boolean = false
Gibt an, ob die Anwendung vor dem Laden von Sound eine Cross-Domain-Richtliniendatei vom Server des geladenen Sounds herunterladen soll. | SoundLoaderContext | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object |
Methode | Definiert von | ||
---|---|---|---|
Erstellt ein neues SoundLoaderContext-Objekt. | SoundLoaderContext | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
bufferTime | Eigenschaft |
public var bufferTime:Number = 1000
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Anzahl der Millisekunden zum Vorausladen eines Streamingsounds in einen Puffer vor dem Streaming.
Beachten Sie, dass der Wert von SoundLoaderContext.bufferTime
durch Festlegen der globalen SoundMixer.bufferTime
-Eigenschaft nicht überschrieben werden kann. Die SoundMixer.bufferTime
-Eigenschaft wirkt sich auf die Zwischenspeicherzeit für eingebetteten Streamingsound in einer SWF-Datei aus und hängt nicht von dynamisch erstellten Soundobjekten (d. h. den ActionScript erstellten Soundobjekten) ab.
checkPolicyFile | Eigenschaft |
public var checkPolicyFile:Boolean = false
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt an, ob die Anwendung vor dem Laden von Sound eine Cross-Domain-Richtliniendatei vom Server des geladenen Sounds herunterladen soll. Diese Eigenschaft wird über die Sound.load()
-Methode auf Sound angewendet, der von außerhalb der Domäne der aufrufenden Datei geladen wird.
Setzen Sie diese Eigenschaft auf true
, wenn Sie Sound von außerhalb der Domäne der aufrufenden Datei laden und Code in der aufrufenden Datei Zugriff auf niedriger Ebene auf die Sounddaten benötigt. Zu den Beispielen für Sounddaten-Zugriff auf niedriger Ebene gehört der Verweis auf die Sound.id3
-Eigenschaft zum Abrufen eines ID3Info-Objekts oder der Aufruf der SoundMixer.computeSpectrum()
-Methode zum Abrufen von Soundbeispielen des geladenen Sounds. Wenn Sie während des Ladevorgangs auf Sounddaten zugreifen, ohne die checkPolicyFile
-Eigenschaft auf true
zu setzen, wird möglicherweise eine SecurityError-Ausnahme ausgelöst, da die erforderliche Richtliniendatei nicht heruntergeladen wurde.
Wenn kein Zugriff auf niedriger Ebene auf die zu ladenden Sounddaten erforderlich ist, setzen Sie checkPolicyFile
nicht auf true
. Die Suche nach einer Richtliniendatei beansprucht Netzwerkbandbreite und verzögert möglicherweise den Start des Downloads. Sie sollte daher nur durchgeführt werden, wenn dies unbedingt erforderlich ist.
Wenn Sie Sound.load()
aufrufen und SoundLoaderContext.checkPolicyFile
auf true
gesetzt ist, muss Flash Player oder AIR entweder erfolgreich eine relevante URL-Richtliniendatei herunterladen oder feststellen, dass keine derartige Richtliniendatei existiert, bevor der angegebene Sound heruntergeladen wird. In Flash Player oder AIR werden die folgenden Aktionen in der angegebenen Reihenfolge ausgeführt, um zu überprüfen, ob eine Richtliniendatei vorhanden ist.
- Flash Player oder AIR überprüft Richtliniendateien, die bereits heruntergeladen wurden.
- Flash Player oder AIR versucht, ausstehende Richtliniendateien herunterzuladen, die in Aufrufen von
Security.loadPolicyFile()
angegeben wurden. - Flash Player oder AIR versucht, eine Richtliniendatei vom Standardspeicherort herunterzuladen, der der URL des Sounds entspricht, d. h.
/crossdomain.xml
auf dem gleichen Server wieURLRequest.url
. (Die URL des Sounds ist in derurl
-Eigenschaft des URLRequest-Objekts angegeben, das anSound.load()
oder die Sound()-Konstruktorfunktion übergeben wird.)
In allen Fällen muss eine entsprechende Richtliniendatei auf dem Server des Sounds vorhanden sein, über die anhand des Speicherorts der Richtliniendatei auf die Sounddatei unter URLRequest.url
zugegriffen werden kann und über die die Domäne der aufrufenden Datei über mindestens ein <allow-access-from>
-Tag auf den Sound zugreifen kann.
Wenn Sie checkPolicyFile
auf true
setzen, wird der Sound in Flash Player oder AIR erst geladen, nachdem die Richtliniendatei überprüft wurde. Führen Sie Methoden auf niedriger Ebene für die Sounddaten (z. B. Aufrufe von Sound.id3
oder SoundMixer.computeSpectrum()
) erst durch, nachdem die Ereignisse progress
und complete
über das Soundobjekt ausgelöst wurden.
Wenn Sie checkPolicyFile
auf true
setzen und keine passende Richtliniendatei gefunden wird, wird erst dann ein Fehler zurückgegeben, wenn Sie eine Methode ausführen, die eine Richtliniendatei benötigt. In diesem Fall meldet Flash Player oder AIR einen SecurityError
-Ausnahmefehler. Nach dem Empfang eines complete
-Ereignisses können Sie testen, ob eine entsprechende Richtliniendatei gefunden wurde. Rufen Sie dazu den Wert von Sound.id3
in einem try
-Block ab, und überprüfen Sie, ob SecurityError
ausgegeben wird.
Bei Verwendung von checkPolicyFile
beim Herunterladen eines Sounds von einer URL, bei der serverseitige HTTP-Weiterleitungen verwendet werden, ist Folgendes zu beachten: Flash Player oder AIR versucht, Richtliniendateien abzurufen, die mit der url
-Eigenschaft des an Sound.load()
übergebenen URLRequest-Objekts übereinstimmen. Wenn die endgültige Sounddatei aufgrund von HTTP-Weiterleitungen von einer anderen URL stammt, gelten die ursprünglich heruntergeladenen Richtliniendateien möglicherweise nicht für die endgültige URL des Sounds. Dies ist jedoch die URL, die bei Sicherheitsentscheidungen von Bedeutung ist.
Es folgt eine mögliche Lösung für diese Situation. Nach dem Empfang eines progress
- oder complete
-Ereignisses können Sie den Wert der Sound.url
-Eigenschaft überprüfen, die die endgültige URL des Sounds enthält. Rufen Sie dann die Security.loadPolicyFile()
-Methode mit der URL einer Richtliniendatei auf, die auf der endgültigen URL des Sounds beruht. Rufen Sie schließlich den Wert von Sound.id3
auf, bis keine Ausnahme mehr ausgegeben wird.
Dies bezieht sich nicht auf Inhalt in der Sandbox der AIR-Anwendung. Inhalt in der Anwendungssandbox hat immer (unabhängig von seiner Herkunft) programmgesteuerten Zugriff auf Soundinhalt.
Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Verwandte API-Elemente
SoundLoaderContext | () | Konstruktor |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt ein neues SoundLoaderContext-Objekt.
ParameterbufferTime:Number (default = 1000 ) — Die Anzahl der Sekunden zum Laden von Streamingsound in einen Puffer vor dem Streaming.
| |
checkPolicyFile:Boolean (default = false ) — Gibt an, ob beim Laden des Objekts nach dem Vorhandensein einer URL-Richtliniendatei gesucht werden soll (true ).
|
Beispiel ( Verwendung dieses Beispiels )
Der erste Parameter eines SoundLoaderContext-Objekts (context
) wird verwendet, um den Standardpufferwert von einer Sekunde auf drei Sekunden zu erhöhen. (Der Wert wird in Millisekunden angegeben.) Wenn der zweite Parameter des SoundLoaderContext-Objekts auf true
gesetzt wird, prüft Flash Player beim Laden des Objekts, ob eine Cross-Domain-Richtliniendatei vorhanden ist. Hier wurde der Standardwert false
verwendet, sodass keine Überprüfung der Richtliniendatei stattfindet. Die load()
-Methode des Soundobjekts stellt mithilfe der Kontexteinstellung sicher, dass der Streamingsound drei Sekunden in einen Puffer geladen wird, bevor der Sound gestreamt wird. Das URLRequest
-Objekt bestimmt die Position der Datei, bei der es sich um ein Podcast von Adobe handelt. Falls beim Laden der Sounddatei ein IOErrorEvent.IO_ERROR
-Fehler auftritt, wird die errorHandler()
-Methode aufgerufen.
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); } } }
Tue Jun 12 2018, 10:04 AM Z