原文出处:http://www.bluegelmedia.com
原作者:brett e. yokom / killersound, inc
翻译:jimbob
概要
本书介绍“nullsound”stream技术的详细说明。该技术可以比传统的声音stream技术节约90%的文件体积大小,并保持声音和动画完全同步。
序言
我们先从macromdeia flash原有的技术的总览开始讲,后面再来描述具体实现的方法。
现在的互联网中,动画网站正在迅速的增长。人们已经不再满足于使用奇特的矢量造型,漂亮的颜色和动画,你还必须创造很酷的音乐和音效来吸引访问者的注意。以前的flash设计师(1998/1999)只是利用简单的循环音效来打破沉默的web世界,接着,这些循环音效变得越来越复杂,结果造成了文件体积增大,增加了下载的时间。同时,市场上也产生了这样的需求:一些优秀的动画(例如在电视上播放的广告),要求图像必须和音乐以及音效完全同步。但是flash里面的声音,能同时满足这些要求么:既要小文件体积,又要和图像同步?macromedia 提供的解决方案就是把声音设置成stream方式。
这种方式是很有用的,基于以下两个方面原因:
1.flash 播放器不需要一直等到所有的声音全部下载完成才继续播放,只要下载一部分预先缓冲的声音,就可以马上开始播放了。这有点类似于real以及microsoft media player用的流媒体技术。这项技术在宽带接入的互联网用户上表现很好,但是对56k以及以下拨号用户,则会出现问题: 这些用户可以在flash没有完全下载时开始观看,但是随时都可能因为带宽不够而造成动画的停止,最好是等所有的都全部下载完以后,再开始播放它。
2.使用stream方式可以保持绝对的播放帧率。 如果你不使用stream方式,设置flash 的fps帧率设置为25,那么这并不意味着flash将一直以25帧/秒的速度播放,实际的帧率将取决于你的cpu,cpu越强,则实际播放帧率越接近于预设的值。举个例子说就是你在奔腾166机器上播放的帧率为8~9,而用奔iii-500播放的帧率则达到22。理论上讲,如果你设置帧率为25,那么cpu只有1/25秒的时间来计算播放一帧所需要的所有元素。如果cpu的速度达不到这个要求,比如它可能花上1/5秒的时间来计算,那么实际的fps就会降低为 5 fps,如果你的flash包含100帧,那么理论上播放完只要4秒,而实际上播放需要20秒,flash播放变慢了。
解决方案就是使用stream方式的声音!在主时间线上使用stream方式的声音,将告诉flash播放器:“你必须保持声音的播放速度,播放变慢是不允许的!” 结果,不但声音,图形的播放速度也一样保持了同步。那么一个速度低的cpu能用25的帧率处理完所有的数据么?答案是: 不可能。 速度的保持是虚拟的,cpu采用忽略未处理的帧来保持帧率的稳定,例如上面提到的例子,用这种方式处理的话,flash中只有1/5的帧能被显示,其他都被忽略了(这样在某些情况下,可能造成明显的跳帧现象)。
在本书里,我们并不想专门来讨论如何使用声音的event方式或者stream方式,介绍这类的文章可以在 www.macromedia.com或者 www.flashmagazine.com 等地方找到。我们所感兴趣的是:如何更深入的应用这些知识。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器