[as3]使用声音

as3实现播放.wav声音文件(带as3同js通讯源码) as3实现播放.wav扩展名的声音文件 as3实现flash与javascript(js)的通讯 要引用: import de.popforge.audio.output.SoundFactory; import de.popforge.audio.output.Audio; 立即下载

在AS3中使用声音跟AS2有很大的不同。先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试。
理解声音的结构

应用程序可以从4个地方加载声音:

  • 运行时从外部声音文件里加载
  • 内嵌到SWF文件里的声音资源
  • 从连接到用户系统的麦克风上获取声音数据
  • 从远程多媒体服务器,比如Flash Media Server获取声音流

可以等到声音全部加载后再播放,也可以边加载边播放。

ActionScript 3.0和Flash Player支持以mp3格式存储的声音。它们不能直接加载或播放其他格式的声音,比如WAV或AIFF。

使用Adobe Flash CS3 Professional,可以导入WAV或AIFF格式的声音,然后就可以把它们以MP3的格式嵌入到SWF文件中。Flash开发工具可以压缩嵌入的声音文件以减少文件大小,不过这样需要以降低声音质量的代价。 更多信息查看 "Importing Sounds" in Using Flash.

ActionScript3.0声音使用flash.media包中的下列类

类

描述

flash.media.Sound

Sound类用来加载声音,管理声音的基本属性以及使声音开始播放

flash.media.SoundChannel

当程序播放一个声音对象的时候,会创建一个新的SoundChannel对象控制播放。SoundChannel对象同时控制声音的左右频道。每个播放的声音都有自己的SoundChannel对象。

flash.media.SoundLoaderContext

SoundLoaderContext类指定当加载一个声音的时候使用多少秒的缓冲区,以及从服务器加载文件的时候FlashPlayer是否查找跨域策略文件。SoundLoaderContext对象作为Sound.load() 方法的参数使用。

flash.media.SoundMixer

SoundMixer类控制程序中所有声音的回放及安全属性。实际上,多个声音频道通过一个共同的SoundMixer对象混合在一起,因此,SoundMixer对象的属性会影响正在播放的所有SoundChannel对象。

flash.media.SoundTransform

SoundTransform类包含用于控制音量和平衡的值。SoundTransform对象可以应用到一个单独的SoundChannel对象,全局的SoundMixer对象或者一个Microphone对象。

flash.media.ID3Info

ID3Info对象包含mp3文件中的ID3元数据信息。

flash.media.Microphone

Microphone类表示连接到用户电脑上的麦克风或者其他声音输入设备。从麦克风输入的音频可以传送到本地喇叭上或者远程服务器上。Microphone对象控制它自己声音流的取样率。

每个加载和播放的声音都需要它自己的Sound类和SoundChannel类。从多个SoundChannel实例输出的声音在播放中通过全局的SoundMixer混合在一起。

Sound,SoundChannel和SoundMixer类不能用在从麦克风或者流媒体服务器获取的声音上。

加载外部声音文件

Sound类的每个实例都用来加载和回放指定的声音。应用程序不能重复使用一个Sound对象加载多于一个的声音。如果想加载一个新的声音,需要创建一个新的声音对象。

如果加载一个小的声音文件,比如要附加在按钮上的点击声音,可以像下面这样创建一个新的Sound,然后让它自动加载声音文件:

ActionScript Code:
  1. var req:URLRequest = new URLRequest("click.mp3");
  2. var s:Sound = new Sound(req);

Sound()构造函数使用一个URLRequest对象作为第一个参数。当指定了URLRequest参数的时候,Sound对象就开始自动加载指定的声音文件。

除了这个最简单的情况之外,应用程序都应该注意声音的加载过程并监视加载过程中出现的错误。比如,如果这个点击声音特别的大,可能在用户点击按钮触发这个声音的时候这个声音文件还没有完全加载完。试图播放一个未加载完的声音可能导致一个运行期错误。安全的做法是等声音完全加载后再允许用户的那些可能导致声音播放的行为。

在声音加载过程中,Sound对象会发送几个不同的事件。应用程序可以监听这些事件来跟踪加载过程以确保声音在完全加载后才能播放。下表列出了声音对象可能发送的事件。

事件

描述

open (Event.OPEN)

在声音加载操作刚开始时发送。

progress (ProgressEvent.PROGRESS)

当从文件或者流中接收到数据的时候周期性的发送。

id3 (Event.ID3)

当一个mp3声音的ID3数据可用时发送。

complete (Event.COMPLETE)

当声音的所有数据加载完后发送。

ioError (IOErrorEvent.IO_ERROR)

如果声音文件不能定位或者加载过程中在所有数据接收完之前被中断的时候发送。

下面的代码演示了如何在声音加载完后播放一个声音:

ActionScript Code:
  1. import flash.events.Event;
  2. import flash.media.Sound;
  3. import flash.net.URLRequest;
  4.  
  5. var s:Sound = new Sound();
  6. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  7. var req:URLRequest = new URLRequest("bigSound.mp3");
  8. s.load(req);
  9.  
  10. function onSoundLoaded(event:Event):void
  11. {
  12.     var localSound:Sound = event.target as Sound;
  13.     localSound.play();
  14. }

首先,这段示例代码创建了一个新的Sound对象,但并没有指定URLRequest参数。然后,它监听Sound对象的Event.COMPLETE事件,当所有声音数据加载完后执行onSoundLoaded()方法。接下来,它使用一个新的URLRequest值调用Sound.load()方法。

当声音全部加载完后执行onSoundLoaded()方法。Event对象的target属性是Sound对象的引用。调用Sound对象的play()方法开始播放声音。

监视声音加载过程

声音可能非常大,加载需要相当长的时间。FlashPlayer允许在声音全部加载完前就能播放,你可能想想给用户一个显示声音加载了多少以及播放了多少。

Sound类的两个事件使得显示加载进度变得相当容易: ProgressEvent.PROGRESS和Event.COMPLETE. 下面的代码展示了如何使用这些事件显示声音的加载进度:

ActionScript Code:
  1. import flash.events.Event;
  2. import flash.events.ProgressEvent;
  3. import flash.media.Sound;
  4. import flash.net.URLRequest;
  5.  
  6. var s:Sound = new Sound();
  7. s.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
  8. s.addEventListener(Event.COMPLETE, onLoadComplete);
  9. s.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
  10.  
  11. var req:URLRequest = new URLRequest("bigSound.mp3");
  12. s.load(req);
  13.  
  14. function onLoadProgress(event:ProgressEvent):void
  15. {
  16.     var loadedPct:uint =         Math.round(100 * (event.bytesLoaded / event.bytesTotal));
  17.     trace("The sound is " + loadedPct + "% loaded.");
  18. }
  19.  
  20. function onLoadComplete(event:Event):void
  21. {
  22.     var localSound:Sound = event.target as Sound;
  23.     localSound.play();
  24. }
  25. function onIOError(event:IOErrorEvent)
  26. {
  27.     trace("The sound could not be loaded: " + event.text);
  28. }

这段代码首先创建了一个Sound对象,然后为事件ProgressEvent.PROGRESS和Event.COMPLETE添加监听器。在调用了Sound.load()方法及收到第一组数据后,开始出现ProgressEvent.PROGRESS事件,触发onSoundLoadProgress() 方法。

声音加载的百分比等于ProgressEvent对象的bytesLoaded属性除以bytesTotal属性。在Sound对象上同样可以获取bytesLoaded和bytesTotal。上面的代码简单展示了声音加载信息,但是你可以使用bytesLoaded和bytesTotal值来控制进度条组件。

这段代码同样展示了如何组织和响应加载中发生的错误。比如,如果无法定位指定的声音文件,会发送Event.IO_ERROR事件。前面代码中当发生错误时会调用onIOError()方法显示简单的错误信息。

使用嵌入的声音
好了,下面我们把声音导入到库里使用。
打开Flash CS3,选择文件->导入到库,选择好声音,然后确定后会导入声音。打开库面板,找到我们导入的声音,右键,选择”linkage…”菜单
soundlinkage.JPG
会弹出如下框,选择Export for ActionScript注意观察这个弹出框
soundlinkp.JPG
它与AS2中明显不同的是,标识符栏(identifier栏)不能填写,而类(Class)和基类(Base class)栏必须填写。类的名字默认是声音的文件名,但是名字中只能能有字母数字,且以字母开头,因此图中的名字01.mp3是不合格的,可以改为mp3或其他符合规则的名字。基类就是flash.media.Sound。我们点确定,会弹出下框:
soundhint.JPG
大意是指定的类”mp3″在类路径下找不到,在SWF文件导出时会自动为你创建一个类。点确定就可以了。
在帧上写如下代码:

ActionScript Code:
  1. var drum:mp3 = new mp3();
  2. var channel:SoundChannel = drum.play();

导出,就可以听到声音了。

 
飞书多维表格+影刀RPA:我如何用3个指令搞定每周的销售数据自动汇总(附完整配置截图) 本文详细介绍了如何利用飞书多维表格和影刀RPA实现销售数据的自动化汇总,通过三个核心指令(建立链接、列出记录、更新记录)简化繁琐的手工操作。文章包含完整的配置截图和实战指南,帮助用户快速部署自动化流程,提升工作效率。 阅读详情

相关推荐

深入解析DDR5 RFM机制:从JESD79-5标准到硬件实现

本文深入解析了DDR5内存标准中的关键机制——RFM(Refresh Management)。文章从JESD79-5标准出发,详细阐述了RFM如何通过RAA计数器实现从被动定时到主动响应的智能刷新管理,并探讨了其硬件实现细节、命令调度挑战及系统级设计考量,为芯片设计工程师优化DDR5内存子系统性能与可靠性提供了实践指导。

fff88的博客 490

一种AS3下对SOUND对象进行整体、快速采样的方法

最近也没什么写点东西的想法,也都没有什么新意。娃的外语辅导班开课了,发了本教材,打开配套光盘一看,心中立马奔过一万只神兽…………CD,音轨,1995年?这不是发错教材让老夫重修吧,那个年代老夫也上高中了,有点晚啊!好吧,自己动手丰衣足食,用个FLASH吧反正最近比较闲比较闲。开始倒没什么,搞个list,搞个showimg,搞个音量调节,播放进度之类的就OK了。         不过在使用的时候发

zcsor的专栏 616

数据结构与算法 —— 最短路径Dijkstra算法(迪杰斯特拉)详细图解以及python实现

前两章我们讲到了关于图的基本知识,和广度/深度优先搜索。本章,我们将介绍加权图和最短路径的相关知识。最短路径和最小生成树是图论中常见的问题。最短路径是指在一个图中找到两个节点之间的最短路径,最小生成树是指在一个图中找到一个连通子图,使得所有节点都能够互相到达,且总权值最小。最短路径算法常见的有floyd算法(弗洛伊德算法)和 dijkstra算法(迪杰斯特拉)。本文只介绍dijkstra算法。最短路径运用非常广泛,比如在导航系统中,确定两个地点间哪条路线最短;

‘’ 2万+

AS3 声音(Sound、SoundChannel)控制详解

AS3中与声音控制有关的类有以下几个:     类 说明 1 Sound Sound类允许您在应用程序中使用声音。 2 SoundChannel SoundChannel类控制应用程序中的声音。 3 SoundMixer SoundMixer

老码农(javascript、react、vue、antd、vant) 5938

Windows10下安装VMware16虚拟机

由于本人系统为Windows 10 家庭中文版,无法安装Linux子系统WSL,虽然网上也有强制安装的方法,但为保险起见,还是把之前的VMware虚拟机重新进行安装,并浅浅记录一下安装过程。

沉香best的博客 863

PyTorch实战(13)——图卷积网络(Graph Convolutional Network,GCN)

图卷积网络 (Graph Convolutional Network, GCN) 模型能够同时结合节点级特征和图级(邻域)信息进行分类,显著提升了图数据建模能力,适用于节点分类、图分类等多种任务。本节中,我们通过 PyTorch Geometric 库在 CiteSeer 图数据集上构建模型,们首先用前馈神经网络作为基线模型完成节点分类任务,随后用 GCN 模型替代前馈网络显著提升了分类准确率。

盼小辉丶的博客 3256

AS3.0实现声音的波形

package ch14_1 { import flash.display.Graphics; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.*; import flash.media.*; import flash.media.Sound; import flash.

红土豆jie 2045

环形平滑标签(Circular Smooth Label, CSL)技术详解

环形平滑标签(CSL)是一种优化算法,旨在解决旋转目标检测中角度预测的边界问题。通过将角度回归转化为分类任务,并利用窗口函数平滑标签分布,CSL有效处理了角度周期性的梯度突变问题。其核心原理包括角度离散化和平滑标签编码,通过高斯、矩形、三角等窗口函数生成概率分布。CSL在技术实现上涉及标签转换流程、模型结构调整和损失函数优化,显著提升了检测精度和稳定性。在DOTA数据集上的实验表明,CSL在mAP和角度误差方面优于传统方法。应用场景包括遥感图像分析、自动驾驶和工业质检,部署时需注意旋转NMS编译和ONNX导

浩瀚之水的专栏 640

AS3声音录音

MicRecorder, a tiny microphone library http://www.bytearray.org/?p=1858 转载于:https://www.cnblogs.com/jiahuafu/p/3990030.html

weixin_30719711的博客 193

HSM 网络安全 信息安全

HSM HSM信息安全功能 汽车电子网络安全中HSM 的应用场景 选择适合汽车电子网络安全的 HSM 符合汽车安全标准和法规要求的HSM HSM 在汽车电子网络安全中的可靠性和安全性 评估汽车电子网络的安全性 汽车 HSM(Hardware Security Module)模块开发 汽车 HSM(Hardware Security Module)模块测试

天赐好车的博客 1237

生成式AI;语义通信技术;生成式AI辅助的云边协同算法及其可解释性

生成式AI 语义通信技术 生成式AI辅助的云边协同算法及其可解释性 一、端到端设计的物理层内生智能 二、生成式语义通信 三、生成式数字孪生网络 四、生成式AI辅助的云边协同算法及其可解释性 五、未来可能的研究方向

ZhangJiqun&191cm&85kg 428

flash as3使用,播放声音和加载外部声音文件

 [as3]使用声音在AS3中使用声音跟AS2有很大的不同。先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试。理解声音的结构应用程序可以从4个地方加载声音: 运行时从外部声音文件里加载 内嵌到SWF文件里的声音资源 从连接到用户系统的麦克风上获取声音数据 从远程多媒体服务器,比如Flash Media

红杉树(ecitnet)的博客 1万+

Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

flash as3使用,播放声音和加载外部…

[as3]使用声音 在AS3中使用声音跟AS2有很大的不同。先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试。 理解声音的结构 应用程序可以从4个地方加载声音: 运行时从外部声音文件里加载 内嵌到SWF文件里的声音资源 从连接到用户系统的麦克风上获取声音数据 从远程多媒体服务器,比如Flash Media Server获取声音流 可以等到声音全部加载后再播

538

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

AS3使用,播放声音和加载外部声音文件

[as3]使用声音在AS3中使用声音跟AS2有很大的不同。先看下Flash帮助中的一些介绍,然后我们再使用导入到Flash中的声音做个小测试。 理解声音的结构应用程序可以从4个地方加载声音:运行时从外部声音文件里加载 内嵌到SWF文件里的声音资源 从连接到用户系统的麦克风上获取声音数据 从远程多媒体服务器,比如Flash Media Server获取声音流 可以等到声音全部加载后再播放,也可以边加...

qq_16796063的博客 1906

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

转:AS3 使用unloadAndStop()卸载加载的swf以及里面的声音

AS3关于如何卸载外部加载的swf问题 2009-04-20 23:00 使用unloadAndStop() 来卸载 加载的swf资源。 他可以对子swf: 停止声音。 删除舞台事件侦听器。 删除 enterFrame、frameConstructed、exitFrame、activate 和 deactivate 的事件侦听器。 ...

weixin_30389003的博客 203

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

AS3使用unloadAndStop()卸载加载的swf以及里面的声音

使用unloadAndStop() 来卸载 加载的swf资源。 他可以对子swf: 停止声音。 删除舞台事件侦听器。 删除 enterFrame、frameConstructed、exitFrame、activate 和 deactivate 的事件侦听器。 停止计时器。 断开摄像头和麦克风实例 停止影片剪辑。 stop(); var ld:Loader=new L

waizi1976的专栏 1413

As3播放wav的声音[使用popforge开源类库]

package { import de.popforge.audio.output.Audio; import de.popforge.audio.output.AudioBuffer; import de.popforge.audio.output.Sample; import de.popforge.audio.processor....

TTS 356

as3 使用sound类(翻译)-声音播放结束消息

[1b]问题八[/1b]        当我们播放音乐以后,想知道声音何时播放结束。(成业注:当我们播放完一首歌曲后想播放器自动切换到下一首,这时就需要音乐播放结束的消息) [1b]解决方法[/1b]        侦听soundComplete事件 [1b]具体讨论[/1b] [color="#ffffff"]成业原创,转载说明出处 http://hi.baidu.com/flas...

wangangie32 333

as3 使用sound类(翻译)-读取声音信息

 as3 使用sound类(翻译)-读取声音信息时间:2009-09-07 00:16来源:未知 作者:admin 点击: 257次问题七 我们现在想获取正在播放的MP3文件的一些相关信息,比如:艺术家、音乐集、风格, 等。 解决方案 读取sound对象的id3属性 具体讨论 原创,转载说明出处 http://hi.baidu.com/flash_as3 MP3

yuanpan的专栏 1481

as3 使用sound类(翻译)-暂停和继续播放声音

[1b]问题十[/1b]     如何暂停声音,如何从暂停的地方继续播放声音。 [1b]解决方法[/1b]     通过记录当前声音的SoundChannel的position属性值,继续播放时用刚刚的值恢复一下。 [1b]具体讨论[/1b]        在问题二中提到了sound对象的close()方法,它可以用来停止一个声音文件的播放,但是,同时它也停止了声音文件的加载,当重新...

wangangie4 126
上一篇: URLLoader传递参数及取值[AS3.0开发笔记]
下一篇: 详细讲解C++ 类的继承
wx红杉树
博客等级 码龄21年 383粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值