`
hgfghwq14
  • 浏览: 49164 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flash声音高级篇:NullSound技术

阅读更多

 原文出处:
[url=http://www.bluegelmedia.com/]
http://www.bluegelmedia.com
[/url]
原作者:Brett E. Yokom  / 
[url=http://www.killersound.com/home.html]
killersound
[/url]
, Inc
翻译:Jimbob  
[1b]概要
[/1b]
  本书介绍“NULLSOUND”stream技术的详细说明。该技术可以比传统的声音stream技术节约90%的文件体积大小,并保持声音和动画完全同步。
[1b]
序言
[/1b]
   我们先从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 等地方找到。我们所感兴趣的是:如何更深入的应用这些知识。
[1b]方法说明:
[/1b]  采用声音的stream方式,有个主要的缺点:它非常的增加文件体积大小。 这个是由于stream技术本身造成的。如果你使用一个2秒的声音,循环100次,那么声音的总长度为200秒,我们用stream方式导入这200秒的声音。如果声音的原始大小为10k,那么输出的swf文件将包括大约1M的声音,这是估计值,考虑到声音的质量以及一些其他的因素,它的实际大小应该是800~900k。如果用56k拨号上网的平均下载速度4.5k来考虑,用户需要大概200秒(超过3分钟)的时间来下载。如果考虑更低的上网速度比如2.5k,那么需要大概5~6分钟才能下载完.
于是得出结论:文件大小是个大问题.
  一个有趣的现象就是,如果我们使用比较小的声音来使用stream方式,那么最后输出的swf文件大小将会小很多。如果整个音乐是采用killersound教程里使用的技术(
[url=http://www.killersound.com/]
www.killersound.com
[/url]
),那么采用一个声音文件(比如最小的那个)作为stream方式而其他声音文件使用event方式就已经足够了。经过多次测试,我们得到以下的结论:利用layer将其中一个声音文件设置成stream,其他声音文件则不设置为sream方式,效果是完美的。这也意味着Flash可以作为一个混音器来使用。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/233.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics