Sicherheitsüberlegungen beim Laden und Wiedergeben von Sounds

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Die Fähigkeit Ihrer Anwendung, auf Sounddaten zuzugreifen, kann auf das Flash Player- oder AIR-Sicherheitsmodell eingeschränkt werden. Jeder Sound unterliegt den Einschränkungen zweier verschiedener Sicherheits-Sandboxen, der Sandbox für den Inhalt selbst (die Inhalts-Sandbox) und die Sandbox für die Anwendung oder das Objekt, das den Sound lädt und wiedergibt (die Eigentümer-Sandbox). Im Fall von AIR-Anwendungsinhalt, der in der Sicherheits-Sandbox der Anwendung ausgeführt wird, sind sämtliche Sounds, einschließlich der aus anderen Domänen geladenen, für Inhalt in der Sicherheits-Sandbox der Anwendung zugänglich. Für Inhalte in Sicherheits-Sandboxen von anderen Anwendungen gelten jedoch die gleichen Regeln wie für Inhalt, der in Flash Player ausgeführt wird. Weitere allgemeine Informationen zum Sicherheitsmodell von Flash Player und zur Definition einer Sandbox finden Sie unter Sicherheit .

Die Inhalts-Sandbox bestimmt, welche Sounddaten mit der id3 -Eigenschaft oder der SoundMixer.computeSpectrum() -Methode aus dem Sound extrahiert werden können. Sie schränkt nicht das Laden oder die Wiedergabe der Sounddatei selbst ein.

Die Ursprungsdomäne der Sounddatei bestimmt die Sicherheitseinschränkungen der Inhalts-Sandbox. Allgemein gilt, wenn sich eine Sounddatei in der gleichen Domäne oder im gleichen Ordner wie die SWF-Datei der Anwendung oder dem Objekt befindet, die bzw. das den Sound lädt, hat die Anwendung bzw. das Objekt vollständigen Zugriff auf die Sounddatei. Stammt der Sound aus einer anderen Domäne als die Anwendung, kann er mit einer Richtliniendatei dennoch in die Inhalts-Sandbox gebracht werden.

Ihre Anwendung kann ein SoundLoaderContext-Objekt mit einer checkPolicyFile -Eigenschaft als Parameter an die Sound.load() -Methode übergeben. Durch Einstellen der checkPolicyFile -Eigenschaft auf true weisen Sie Flash Player bzw. AIR an, auf dem Server, von dem der Sound geladen wird, nach einer Richtliniendatei zu suchen. Wenn eine Richtliniendatei vorhanden ist und sie den Zugriff auf die Domäne der ladenden SWF-Datei erteilt, kann die SWF-Datei die Sounddatei laden, auf die id3 -Eigenschaft des Sound-Objekts zugreifen und die SoundMixer.computeSpectrum() -Methode für geladene Sounds aufrufen.

Die Eigentümer-Sandbox steuert die lokale Soundwiedergabe. Die Eigentümer-Sandbox wird durch die Anwendung oder das Objekt definiert, die bzw. das die Wiedergabe eines Sounds startet.

Solange die folgenden Kriterien erfüllt sind, schaltet die SoundMixer.stopAll() -Methode alle Sounds in allen aktuell wiedergegebenen SoundChannel-Objekten stumm:

  • Die Sounds wurden von Objekten innerhalb der gleichen Eigentümer-Sandbox gestartet.

  • Die Sounds stammen von einer Quelle mit einer Richtliniendatei, die den Zugriff auf die Domäne der Anwendung oder des Objekts gestattet, die bzw. das die SoundMixer.stopAll() -Methode aufruft.

Jedoch unterliegt in einer AIR-Anwendung Inhalt, der in der Sicherheits-Sandbox der Anwendung ausgeführt wird (Inhalt, der mit der AIR-Anwendung installiert wird), nicht diesen Sicherheitseinschränkungen.

Um festzustellen, ob die SoundMixer.stopAll() -Methode tatsächlich die Wiedergabe aller Sounds stoppt, kann Ihre Anwendung die SoundMixer.areSoundsInaccessible() -Methode aufrufen. Wenn diese Methode den Wert true zurückgibt, befinden sich einige der wiedergegebenen Sounds außerhalb der Kontrolle der aktuellen Eigentümer-Sandbox und können somit nicht von der SoundMixer.stopAll() -Methode gestoppt werden.

Die SoundMixer.stopAll() -Methode stoppt darüber hinaus den Abspielkopf bei allen Sounds, die aus externen Dateien geladen wurden. Die Wiedergabe von Sounds, die in FLA-Dateien eingebettet sind und mithilfe des Flash-Authoring-Tools an Bilder in der Zeitleiste angefügt wurden, wird möglicherweise neu gestartet, wenn die Animation zu einem neuen Bild wechselt.