ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.media 

SoundLoaderContext  - AS3

Paketflash.media
Klassepublic class SoundLoaderContext
VererbungSoundLoaderContext Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Über die SoundLoaderContext-Klasse werden Sicherheitsprüfungen bei Dateien durchgeführt, in denen Sounddaten geladen werden. SoundLoaderContext-Objekte werden als Argument für den Konstruktor und die 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 Methoden SoundMixer.computeSpectrum(), SoundMixer.bufferTime und SoundTransform().

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.



Öffentliche Eigenschaften
 EigenschaftDefiniert 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
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Erstellt ein neues SoundLoaderContext-Objekt.
SoundLoaderContext
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails

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 wie URLRequest.url. (Die URL des Sounds ist in der url-Eigenschaft des URLRequest-Objekts angegeben, das an Sound.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

Konstruktordetails

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.

Parameter
bufferTime: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 )

Im folgenden Beispiel wird der Puffer für zu ladenden Sound auf drei Sekunden eingestellt.

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);
        }

    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.