并非SleepMode之错——IE9对Flash Player的影响
Flash Player从版本10.1开始加入了Sleep Mode(睡眠模式),具体表现为在浏览器中的Flash Player窗口不可见(最小化、被完全遮挡,或被滚动条带到不能显示的地方)时,自动将帧率降低到4帧/秒。我原来也写过一篇文章介绍FPS对Socket链接的影响
睡眠模式给游戏开发者带来很大的麻烦,但并非不可解决。目前最常用的两种解决方式是这样:
- 在JS中写一个计时器,每隔一段时间调用SWF提供的方法,可以避免进入睡眠模式;
- 在swf中播放一段不间断的声音,可以让帧频维持在8帧/秒。
但是,即使是使用了这两种方法,在IE9中,依然会受到“睡眠模式”的影响! 而且,这个“睡眠模式”的提供者是IE9,我们无法绕过。
就目前我测试得到的情况,IE9对Flash Player有如下影响:
- 在IE9窗口最小化时,会自动切断音视频流;
- 在IE9窗口最小化时,会自动切断客户端与服务器的通信,但不会切断连接。
测试环境:
- Windows 7 旗舰版
- Internet Explorer 9
- Flash Player 10.3.181.34 标准版+Debug版
开发环境:
- 客户端:Flex SDK 4.5.1
- 服务端:Flash Media Server 4.0
以上结论是只测试了FMS为服务器的情况,没有测试Socket的情况,想来应该没什么区别。
网上搜了一通,没有什么中文资料,但在Microsoft Answer上找到 这样一篇文章 。我想中文资料少的原因可能是国内的开发者都不太愿意转到Win7环境,而导致无法升级IE9,所以碰不到这个问题。
上文中也说到一个解决办法,由于公司电脑无法装IE9,我暂时还没有测试:
测试了,这方法没用。
See if this fixes the Flash/IE9 problem. From Safety (on the IE Command Bar) uncheck) ActiveX filtering.
- 文章ID:1371
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/ie9_the_impact_of_flash_player/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。