看标题可能很多人会误解,那就仔细看看内容吧。不过如果你不是用director开发工具制作多媒体项目的,你就可以忽略下面的内容,跳过这篇文章了。 :)

昨天一多媒体光盘项目到了交货验收阶段,客户对光盘的全屏幕播放作了硬性要求,没得办法啊,只好通过程序修改客户的显示器分辨率,播放完后自动将显示器的分辨率改回。

题外话: 做交互多媒体的朋友应该都知道,director实现全屏的方式只有那么几种:

1、画面大小不调整、显示器分辨率不调整,画面居中显示,四周区域以黑色填充。
2、..............................................................,四周不做调整直接可以看到后面的桌面。
3、通过程序调整stage为客户机的分辨率大小,即 拉伸多媒体界面
4、调整客户机分辨率为多媒体项目需要的分辨率,播放完毕,将分辨率修改为客户原始的设置。
5、制作不同大小的多媒体界面,播放时根据客户机的分辨率自动选择播放对应大小的画面。

以上几种方式,是我们能够想到的,其中 1、2、4 这几种方式应该应用的最普遍。第3种拉伸后画面的资料会比较差出现锯齿,一般采用较少。第5种方案,只是理论上的,不可能付诸实行的,因为不可能知道客户机的显示器分辨率的大小,所有可能的情况太多,也就不可能制作那么多的应对措施。

回到主题,我这次采用的是第4种方案,在台式机上测试很正常,可以正常修改显示器的分辨率和刷新频率,于是发给客户测试,客户反馈不是全屏幕的,最开始我以为是客户使用的问题,于是我就netmeeting远程登录到客户的电脑上,看了一下,不是客户的问题,确实程序不能修改客户机的分辨率,而且客户说他们那边的好几台电脑都不能全屏。

??? 问题出在哪呢? 我这边测试了几台机器一切正常,突然一个念头闪过,客户那边的所有电脑的是笔记本,难道是笔记本不能被正常修改显示器的分辨率和刷新率,我想,这下可惨了,没辙了。

不认输的我于是开始在msn中求助做多媒体的朋友,但是都没有实质的办法,都说没有碰到过或者没出现问题。后来一位网友的一句话提醒了我,“你手动修改显示器的分辨率看看能否成功”,突然之间我就想到 笔记本的显示器刷新频率只能是60,没有其它的选择,台式机CRT显示器一般都可以是85。 终于找到了问题症结所在啊。马上测试,终于正常了。
原来 还是代码写的不够完善的缘故,我写的要调整的目标分辨率是[800,600,32,85] 其中最后一项85,就是显示器的刷新频率,这一个参数就引发了前面的问题,因为在笔记本中是不可能修改为85的,所有显示器的分辨率没有调整。
解决方案,察看客户机支持的显示器分辨率和刷新率,然后修改为可用的。或者 直接得到当前客户机的刷新率,目标刷新率不调整。

--

说明:其实问题的症结在于显示器的类型,如果是 LCD的话,一般刷新频率为60; CRT显示器的刷新频率可就多了60以上不等。