我在我的flex应用程序中播放了几个视频流。此外还有应用程序UI的声音。是否有可能将整个应用程序静音,或者我应该使每个潜在的声源静音?
答案 0 :(得分:2)
你试过吗
SoundMixer.soundTransform = new SoundTransform(0, 0);
答案 1 :(得分:1)
我很确定开箱即用的ActionScript无法做到这一点。您需要有一些管理器类来跟踪应用程序中的所有声音(Sound,SoundChannel,SoundTransform等和您的视频流),并且具有静音逻辑。
如果您可以强制用户使用firefox,则可以使用插件来保护swf文件。静音Flash - https://addons.mozilla.org/en-US/firefox/addon/5453
答案 2 :(得分:1)
您可能需要重新实施您的应用,以集中控制应用中的音频组件。有一种叫做Inversion of Control的设计模式可能对这个问题有用。
http://en.wikipedia.org/wiki/Inversion_of_control
特别是使用Flex,您应该使用Cairngorm查找模型定位器模式。
http://www.adobe.com/devnet/flex/articles/cairngorm_pt2_06.html
您可以使用它在一个位置存储应用程序的所有各种音频级别。您可以添加一个名为muteAll()的方法,该方法将所有级别设置为0.无论何时在应用程序中创建新的音频组件,都要确保在模型定位器中添加对其音量级别的引用。将音频的音量级别绑定到模型定位器中设置的值。然后在应用程序的其他地方,您可以更改模型定位器中的值,并通过绑定您构建的音频组件将更新。
这也可能有所帮助。
http://livedocs.adobe.com/flex/3/html/help.html?content=Working_with_Sound_23.html#160274