非本地绘图模式下QWebView中的flash有声无画
By Insion
2010.07.31
------------------
先提一个问题:非本地绘图模式下QWebView中的flash有声无画
寻找问题原因所在的过程:
被这个问题困扰了很久,现在分享出来,希望可以帮到人的同时找到更好的办法。
开始以为这个问题是flash插件
没有被正常加载,但是右键的时候却出现菜单,在这一点上面一直让我疑惑不解,既然不能加载flash插件为什么还能显示出flash的菜单呢?这其中肯定大有文章。
直到有一天在youku.com打开一个自动播放的视频的时候才发现问题,因为这个视频是有声视频。
而平时我测试的时候都是直接看flash广告是否显示出来,因为一般的flash广告都是没有声音的。
现在出现了一些很令人反感的网页游戏采用有声flash广告进行宣传,一但打开附带这样广告的网页就会不断的听到各种内嵌在flash广告中的游戏声音、嘈杂无比,这样的游戏我一般是很反感的~这是题外话。
所以我一直都没有真正发现这个问题的内因,这个内因就是flash插件确实已经被正常加载了,声音正常播放,只是
无法显示出画面而已,而说明
插件的运行状态基本是正常的。
那么是什么因素影响了flash插件的画面正常显示呢?问题推论到这里,我终于找到突破口了,我在程式开始之前设置了绘图模式!
而启用光栅模式的本意是想解决在mac下本地模式的css3圆角锯齿问题,而现在却成了罪魁祸首,使用了非本地的光栅模式据我测试之后发现,在非本地绘图模式下都无法正常绘画出flash的画面。
测试报告:
Mac+native flash插件完全正常 css3圆角锯齿严重
Mac+raster flash插件有声无画 css3圆角完美
Mac+opengl flash插件有声无画 css3圆角较好
Win+native flash插件完全正常 css3圆角完美
Win+raster flash插件完全正常 css3圆角完美
Win+opengl flash插件状况未知 css3圆角状况未知
被测试的Qt版本有:4.6.2,4.6.3,4.7B2
css3圆角测试网址:
http://www1.pconline.com.cn/pcedu/specialtopic/css3-doraemon/解决问题的办法是使用本地绘图模式:
QApplication::setGraphicsSystem("native");//默认就是该模式,所以把原来设置的直接
删除就行了。
[ 此帖被insion在2010-07-31 15:29重新编辑 ]