2009-08-05 5 views

Antwort

2

Haben Sie versucht,

SoundMixer.soundTransform = new SoundTransform(0, 0); 
+0

Es ist nur sinnvoll für gestreamte und emendiert Ton, nicht automatisch generiert, aber es ist mein Fall. –

1

Ich bin mir ziemlich sicher, dass es keine Möglichkeit gibt, dies mit ActionScript sofort zu tun. Sie benötigen eine Managerklasse, die alle Sounds (Sound, SoundChannel, SoundTransform usw. und Ihre Videostreams) in Ihrer Anwendung nachverfolgt und über Logik für das Stummschalten verfügt.

Wenn Sie Ihre Benutzer zwingen können, Firefox zu verwenden, gibt es ein Plugin zum Stummschalten von SWF-Dateien. Mute-Flash - https://addons.mozilla.org/en-US/firefox/addon/5453

1

Sie müssen wahrscheinlich neu implementieren Ihre App die Steuerung von Audio-Komponenten in Ihrer App zu zentralisieren. Es gibt ein Entwurfsmuster namens Inversion of Control, das für dieses Problem nützlich sein könnte.

http://en.wikipedia.org/wiki/Inversion_of_control

Insbesondere mit Flex, sollten Sie das Modell Locator Muster mit Cairngorm Nachschlag.

http://www.adobe.com/devnet/flex/articles/cairngorm_pt2_06.html

Sie könnten dies in einem einzigen Standort für Ihre Anwendung alle verschiedenen Audiopegel zu speichern, verwenden. Und Sie könnten eine Methode namens muteAll() hinzufügen, die alle Ebenen auf 0 setzt. Wenn Sie eine neue Audiokomponente in der App erstellen, stellen Sie sicher, dass Sie im Modell-Locator einen Verweis auf die Lautstärke hinzufügen. Binden Sie den Lautstärkepegel des Audios an den im Modell-Locator festgelegten Wert. Dann können Sie an anderer Stelle in der App den Wert im Modell-Locator ändern und durch das Binden der Audiokomponente, die Sie erstellen, aktualisiert werden.

Dies könnte auch hilfreich sein.

http://livedocs.adobe.com/flex/3/html/help.html?content=Working_with_Sound_23.html#160274

Verwandte Themen