




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第20章 声音编程在Flash创建的引人入胜的动画效果当中,声音效果是最容易让人忽略,却又是最吸引人的地方。在动画创作中加入声音元素,能够使动画效果交互性更强,效果更生动。比如可以在视频游戏中添加声音效果,可以在应用程序用户界面中添加音频回馈,甚至可以创建一个分析通过Internet加载的mp3文件的程序。本章将介绍何加载外部音频文件以及处理SWF中嵌入的声音。还将介绍如何控制音频和从用户麦克风捕获声音等内容。1声音编程介绍在计算机中声音信息的表示形式被称为数字音频。计算机可以捕获并编码数字音频以及对其进行存储和检索,进而可以通过连接到计算机上的扬声器进行回放。使用Flash Player和ActionScript结合,也能够实现音频文件的回放。在ActionScript 3.0中,利用载入的数字音频数据,可以随意的来控制声音的音量、或者立体声还是单声道声音。不过在ActionScript 3.0中控制声音之前,需要先将声音信息加载到Flash Player中。ActionScript 3.0提供了4种方法将音频数据加载到 Flash Player 中,分别为:在运行时加载的外部声音文件。在应用程序的 SWF 文件中嵌入的声音资源。来自连接到用户系统上的麦克风的声音数据。从远程媒体服务器流式传输的声音数据,如Flash Media Server。1)Sound类Sound类用于在应用程序中使用声音。利用Sound类创建新的Sound对象、将外部的MP3文件加载到该对象并播放该文件、关闭声音流,以及访问有关声音的数据,比如有关流中字节数和ID3元数据的信息。方法 说明 close() 关闭该流,从而停止所有数据的下载。 load(stream,context) 启动从指定 URL 加载外部 MP3 文件的过程。 play(startTime,loops, sndTransform) 生成一个新的 SoundChannel 对象来回放该声音。 2)SoundChannel类SoundChannel类用于在应用程序中控制声音。在Flash应用程序中,播放的每一个声音都被分配到一个声道,而且应用程序可以具有混合在一起的多个声道。SoundChannel类还包含一个stop()方法、几个用于监控声道幅度的属性,以及用于对声道设置SoundTransform对象的属性。SoundChannel类共有4个属性,1个方法,1个事件,具体内容如下。leftPeak:只读属性,表示左声道的当前音量幅度,范围从0(静音)至1(最大音量)。position:只读属性,表示该声音中播放头的当前位置。rightPeak:只读属性,表示右声道的当前音量幅度,范围从0(静音)至1(最大音量)。soundTransform:分配给该声道的SoundTransform对象。用于实现音量的控制和调节。stop()方法:停止在该声道中播放声音。soundComplete事件:在声音完成播放后调度该事件。3)SoundMixer类如果在加载声音文件或视频文件数据的同时播放该文件,则认为是流式传输。通常,将对从远程服务器加载的外部声音文件进行流式传输,以使用户不必等待加载完所有声音数据再收听声音。SoundMixer类就是用于控制嵌入的音频文件在传输声音流之前,预先载入道缓冲区的时间。注意,此类只能控制动态加载的声音文件,而不能控制嵌入道Flash Player中的声音文件。此类有2个属性,3个方法,具体如下所示。bufferTime:表示在开始传输嵌入的声音流之前,将其预加载到缓冲区中所用的秒数。soundTransform :控制全局声音属性的SoundTransform对象。areSoundsInaccessible():确定是否因安全限制而无法访问任何声音,若无法访问,则返回puteSpectrum():获取当前声音波形的快照,并将其放在指定的ByteArray对象数组中。stopAll():停止当前正在播放的所有声音。2播放和控制声音要实现在Flash中播放声音,需要把声音文件加载到Flash Player中。加载完之后,就可以利用flash.media包中的类进行播放控制,实现相应的播放效果。本节将首先介绍两种加载声音的方法,然后介绍声音的播放控制和调节。1)加载外部声音要加载外部的声音文件,需要使用URLRequest类提供访问外部音频文件的URL连接,然后创建Sound类的实例,然后利用该类的构造函数使用URL作为参数加载外部的音频文件。Sound类的构造函数用法格式如下所示。Sound(stream:URLRequest = null, context:SoundLoaderContext = null)参数说明:stream:URLRequest连接地址,默认为空,指向外部MP3文件的URL连接地址。context:SoundLoaderContext,音频文件载入的长度数据。表示MP3数据保留在Sound对象的缓冲区中的最小毫秒数。在开始播放以及在网络中断后继续回放之前,Sound对象将一直等待直至至少拥有这一数量的数据才开始执行播放操作。默认值为1000毫秒。2)加载嵌入声音并不是所有的声音文件都需要加载外部文件。在声音文件本身不大,对生成的SWF文件大小影响不大的情况下,通常使用在Flash中嵌入文件要比使用外部音频灵活性更强,更容易操作。下面的实例介绍在Flash中嵌入声音并加载的方法,具体操作步骤如下所示3)播放、暂停和停止加载完成的文件,在需要播放时,只要执行为Sound实例的Sound.play()方法就可以实现,其用法格式如下所示。play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel说明:此方法将返回SoundChannel声音通道对象,用于控制声音。如果没有声卡或用完了可用的声道,此方法将返回null。注意:一次最多可以使用32个声道。参数及返回说明:startTime:以毫秒为单位的开始播放放的初始位置,默认为0,也就是声音的头部。loops:定义在声道停止播放之前,声音循环播放的的次数。默认为0,表示无限循环。sndTransform:分配给该声道的初始SoundTransform对象值,默认为空。4)显示播放进度通常情况下,在播放音频文件的过程中,需要显示当前正在播放的音频文件的进度值,也就是播放的百分比。利用的原理为:使用Sound类的length属性获取当前音频的总长度;使用SoundChannel类的position属性获取播放头在当前音频的位置,也就是当前播放的长度;然后二者的比值就是当前播放进度值。5)控制音量在ActionScript 3.0中,音量的控制,改变的是当前声音通道的音量大小。要实现此效果,需要创建一个SoundTransform对象,然后使用该对象的volume属性来改变SoundTransform对象的音量值,并最后应用与声音通道。下面的实例先创建一个Slider(滑块)组件,通过在滑块轨道的端点之间移动滑块来调节音量的值。然后使用SoundTransform对象来调节音量发生变化。使用文档类:SoundVolue,代码如下所示。3捕获声音输入在ActionScript 3.0中提供了Microphone类拉捕获输入的声音。不过此类主要用于服务器,如Flash Media Server或Flex。不过在没有服务器的情况下也可以使用Microphone类,只是在使用上受到一定的限制。1)Microphone类Microphone类主要用于捕获麦克风的声音,然后将捕获到的声音传递到服务器进行保存。此类的常用属性有11种,如表20-5所示;属性 数据类型 说明 activityLevel Number 麦克风正在检测的音量。 gain Number 麦克风在传送信号之前应该将信号放大的倍数。 index int 麦克风的索引,它反映在Ms返回的数组中。 muted Boolean 指定用户是已经拒绝对麦克风的访问(true)还是已经允许对麦克风的访问(false)。 name String 当前声音捕获设备的名称,它由声音捕获硬件返回。 names Array 所有可用的声音捕获设备的名称。 rate int 麦克风捕获声音的频率,单位是kHz。 silenceLevel Number 激活麦克风并调度activity事件所需的音量。 silenceTimeout int 麦克风停止检测声音的时间和调度activity事件的时间之间相差的毫秒数。 soundTransform
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小雪语文考试题目及答案
- 第一次带妹妹400字10篇
- 大型农产品供应链采购合同
- 桃花源记中描写艺术的探究与学习:初三文言文阅读理解教案
- 给灾区小伙伴的一封信一封信作文15篇范文
- 纪检安全知识培训材料课件
- 整治形式主义为基层减负若干规定
- 《荆轲刺秦王改编》满分作文800字(3篇)
- 过年双辽作文600字(10篇)
- 早教环创理论知识培训课件
- 热射病的护理诊断和措施
- 三年级科学教材培训心得
- 北师大版二年级数学上册计算题专项复习大全120
- 北京市海淀区2023-2024年五年级上学期数学期末试卷
- 医疗机构人力资源管理制度
- 品管圈PDCA改善项目-提高住院患者出入量记录的准确率
- 餐厅开荒保洁操作技术方案
- 2024年春季小学三年级英语课件教学方法探索
- 部编人教版小学四年级上册语文词语表注音
- DB52T 1781-2024 介入诊疗医务人员辐射防护规范
- 回收黄金合同协议书(2篇)
评论
0/150
提交评论