ActionScript编程 读取声音文件大小
ActionScript编程 加载服务端程序数据
ActionScript编程加载服务端程序数据作用:获取服务器端程序中输出的数据,并将这些内容加载到应用程序。
说明:除了可以加载外部文本文件中的内容外,还可以加载服务器端程序执行后输出的内容。
这些内容的形式与文本文件相同,可以是纯文本,也可以是名值对(包括以&连接符号连接起来的多组名值对)。
与获取文本文件中的数据一样,要读取服务器端程序文件执行完毕后的数据,同样要先创建URLRequest对象和URLLoader对象,然后使用URLLoader对象加载被指定了程序文件路径的URLRequest对象。
当数据加载完成后,同样使用“event.target.data”来获取返回的数据。
var request:URLRequest=new URLRequest("http://127.0.0.1/example.asp");var loader:URLLoader = new URLLoader();loader.load(request);loader.addEventListener(PLETE,onComplete);function onComplete(event:Event):void {trace(event.target.data);//输出加载的内容}如果加载的数据中包含有多组名值对,且不知道这些变量的名称,想要读取每一个变量的值,可以使用for…in语句遍历所有已载入的变量,其基本形式如下所示。
var variables:URLVariables = URLVariables(event.target.data);for (var property:String in variables){trace(property + "=" + variables[property]);}在for…in语句中,将所有的属性名称存储在property变量中,而值的取出方式就是以property查找data。
ActionScript编程 播放与停止播放
ActionScript编程播放与停止播放作用:开始播放和停止播放声音文件。
说明:在开始加载声音文件后,为Sound对象调用play()方法可以播放加载的声音,该方法的一般形式如下所示。
sound.play(startTime,loops,sndTransform);play()方法可以接受以上3个可选参数,其详细介绍如下所示。
●startTime 播放声音的起始位置(以毫秒为单位)。
●loops 定义在声道停止播放之前,声音循环回startTime值的次数。
该参数的最小值为0,即播放一次。
如果传递的值为负数,仍然播放一次。
●sndTransform 分配给该声道的初始SoundTransform对象。
play()方法返回一个SoundChannel对象,用于控制一种声音的播放。
可以将SoundChannel.position属性视为播放头,以指示所播放的声音数据中的当前位置。
如果没有声卡或用完了可用的声道,该方法将返回null。
需要注意的是,一次最多可以使用32个声道。
在如果想要停止加载声音,可以使用Sound对象的close()方法。
该方法关闭声音流,从而停止所有数据的下载。
close()方法的基本形式如下所示。
sound.close();示例:从相同文件夹中加载名称为song的mp3文件,并侦听该声音文件的加载完成事件。
在加载未完成时,如果单击舞台中的closeBtn按钮元件,则停止加载该声音文件;如果加载完成,则自动开始播放该声音,如下所示。
import flash.events.Event;import flash.media.Sound;import .URLRequest;//导入所需的类var sound:Sound = new Sound();var req:URLRequest = new URLRequest("song.mp3");//定义包含有声音文件URL地址的URLRequest对象sound.load(req);//加载声音文件sound.addEventListener(PLETE, onLoadComplete);//侦听加载声音文件的complete事件closeBtn.addEventListener(MouseEvent.CLICK,closeSound);function closeSound(event:MouseEvent):void{sound.close();//停止加载声音流}//提示完成声音文件加载function onLoadComplete(event:Event):void{sound.play();//播放声音}。
FLASH CS4 控制音频播放
FLASH CS4 控制音频播放在之前的章节中,已介绍了如何在Flash中加载声音。
Flash CS4除了加载声音外,还可以对声音播放进度进行一系列的控制,如播放、暂停、停止。
除此之外,还可以控制音量的大小。
1.停止声音在之前的章节中已经介绍了如何在Flash中播放音频。
在制作音频播放器时,除了需要播放音频外,还需要控制音频的停止。
这需要使用到flash.media包中的SoundMixer类。
SoundMixer是一种控制全局的类,其可以控制由Flash影片播放的所有声音流,并且拥有多种全局控制的属性和方法。
也是说,SoundMixer并不控制动态创建的Sound对象。
SoundMixer常用的属性主要有两种:●bufferTime 该属性的作用是设置声音流在开始传输前预加载的时间,单位为秒。
●soundTransform 该属性的作用是为SoundMixer对象引入控制全局的SoundTransform对象。
SoundMixer的这两种属性都属于静态方法,仅可以操作嵌入到Flash影片中的声音,无法对在ActionScript中动态创建的声音进行操作。
除了以上的属性外,SoundMixer还包含3种常用的方法。
●areSoundsInaccessible() 确定是否因安全限制而无法访问声音●computeSpectrum() 获取当前声音的波形快照,并将其放在指定的ByteArray对象中。
●stopAll() 停止当前播放的所有声音。
例如,在一个播放器中,停止播放的按钮实例名称为stopBtn,则为其添加的停止播放代码如下。
stopBtn.addEventListener(MouseEvent.CLICK,stopMusic);function stopMusic(event:MouseEvent):void{SoundMixer.stopAll();}需要注意的是,在使用stopAll()方法时,所引用的SoundMixer类本身,而不是该类的实例。
ActionScript编程 元数据设置
ActionScript编程元数据设置作用:通过图形化界面帮助用户设置影片的元数据,并将其保存在xmp 文件中供影片发布时使用。
说明:在Flash CS4的【发布设置】中选择【Flash】选项卡,即可单击【包括元数据】复选框右侧的【文件信息】按钮,如图15-8所示。
图15-8 文件信息按钮在弹出的与影片文件名相同的对话框中,即可设置影片的各种元数据内容,如图15-9所示。
图15-9 与影片同名的元数据对话框在上面的对话框中,包含多个选项卡以设置元数据的各方面信息,如下所示。
●说明该选项卡用于设置影片的作者、评级以及版权等相关信息。
●IPTC IPTC(International Press Telecommunications Council,国际出版电讯委员会)用于描述影片的出版信息。
●相机数据当影片中包含从相机获取的照片时,可显示相机的相关信息●视频数据当影片中包含从摄像机获取的视频时,可显示摄像机的相关信息●音频数据当影片中包含从CD、DVD等音频介质获取的声音时,显示或设置声音的ID3信息。
●移动SWF 当发布的影片主要用于手持设备(例如手机、PDA等)时,设置影片的作者、版权、内容以及背景透明度等信息●类别设置影片的类别和补充类别,用于为搜索引擎提供搜索的依据●来源设置影片的来源地,●DICOM 当影片用于医学研究、治疗等领域时,设置和显示其反映的病历来源、所属的医学机构等信息。
●历史记录显示影片元数据被修改、编译的记录●Illustrator 如影片反映的是用于印刷的插画,则可定义印刷品的色彩类型●高级用于显示XMP文件的树型属性图●原始数据用于显示XMP文件的源代码。
Flash CS4 设计音频播放器
Flash CS4 设计音频播放器ActionScript 3.0脚本语言除了可以加载外部的声音文件,还可以结合外部的XML 文件,制作播放列表供用户选择,并且可以控制声音的快进、倒退、音量等。
结合ActionScript 3.0的脚本绘图技术以及数组技术,用户可以方便地制作出媲美专业水平的音频播放器。
例如,本节就将使用ActionScript 3.0,制作一个可以进行列表选择、音量控制、进度控制的音频播放器。
操作步骤:(1)在Flash 中执行【文件】|【新建】命令,在【新建文档】对话框中选择【Flash 文件(ActionScript3.0)】选项,单击【确定】按钮,创建固定尺寸的空白文档。
(2)设置Flash 文档的大小为800px ×550px ,然后,执行【文件】|【导入】|【打开外部库】命令,从“XPlayerRes.fla ”外部库文件中导入各种元件。
然后,打开【组件】面板,导入Label 和ProgressBar 组件。
选择单击创建(3)将默认的“图层1”改名为background ,导入background 位图素材。
新建surface 图层,导入surfaceSkin2和surfaceSkin 影片剪辑元件,作为播放器的皮肤。
(4)新建controlBtns 图层,分别导入8个控制播放的按钮,为各按钮设置实例名称。
然后,新建infoArea 图层,导入infoArea 元件和listArea 元件,作为显示播放信息和列表信息的背景图像。
(5)新建component 图层,从【库】面板中分别拖拽3个标签组件(L abel )和一个进度条组件(ProgressBar ),用于显示各种歌曲的信息。
然后,在【属性】面板中设置这些组件的实例名称、位置和大小等属性。
设置大小插入背景导入皮肤导入按钮元件导入播放信息背景导入列表信息背景(6)新建ActionScript 图层,选中图层,然后打开【动作】面板,在面板中使用ActionScript 脚本实例化各种播放器所使用的对象。
ActionScript编程 停止所有声音
ActionScript编程停止所有声音作用:停止当前所有正在播放的声音。
说明:当开始播放一个音乐时,它会产生一个SoundChannel对象,在一个swf里可以播放多个声音,而每个声音都对应一个SoundChannel对象。
声音的某些属性是由Sound对象本身控制,有些则有SoundChannel 对象控制,最后通过SoundMixer对象合成所有正在播放的声音并输出到扬声器上。
SoundMixer对象属性和方法会影响所有正在播放的音乐。
SoundMixer对象的stopAll()方法可以停止当前正在播放的所有声音,但是不停止声音的播放头。
stopAll()的使用方法如下所示。
SoundMixer.stopAll();在默认情况下,调用SoundMixer.stopAll()方法只会停止与调用此方法的对象在相同安全沙箱中的声音。
任何声音播放如果不是从与调用对象相同的沙箱中启动的,则不会停止这样的声音。
用,而无须实例化示例:加载并播放song.mp3声音文件,当单击舞台中名称为stopBtn的按钮元件时,所有声音将停止播放,如下所示。
import flash.events.Event;import flash.media.Sound;import flash.media.SoundChannel;import .URLRequest;//导入所需的类var soundChannel:SoundChannel;var sound:Sound = new Sound();var req:URLRequest = new URLRequest("song.mp3"); sound.load(req);soundChannel = sound.play();stopBtn.addEventListener(MouseEvent.CLICK,stopAllSound); //注册侦听stopBtn按钮的鼠标单击事件function stopAllSound(event:MouseEvent):void{ SoundMixer.stopAll();//停止所有声音}。
ActionScript编程 设置声音缓冲区
ActionScript编程设置声音缓冲区作用:通过为声音设置缓冲区,可以使声音播放更加流畅。
说明:Sound类是把整个声音数据载入完毕才开始播放,这对于小文件来说可能没有什么影响,但如果是较大的声音文件,希望在载入的同时就开始播放,以减少等待时间,更利于用户体验。
通过SoundLoaderContex类设置一个声音缓冲区,可以在声音数据下载到一定数量时再进行播放,这样的话即使下载速度偶尔变慢也不会影响正常播放。
创建SoundLoaderContext实例的方法如下所示。
var buffer:SoundLoaderContext = new SoundLoaderContext(bufferTime, checkPolicyFile);SoundLoaderContext()构造函数可以接受以上两个参数,其详细介绍如下所示。
●bufferTime 在开始传输声音流之前,将其预加载到缓冲区中所用的秒数。
●checkPolicyFile 指定在加载对象时Flash Player是(true)否应检查有无URL策略文件。
在默认情况下Sound对象只创建1秒钟的缓冲,也就是说要想立即播放也需要等待1秒钟的缓冲,缓冲区的数据播放完后要想再次播放还要至少等1秒钟缓冲时间。
如果不能确定网络状况或该声音文件的编码是高比特位的(每秒需要更多的比特信息),这时需要提高缓冲区大小以使播放的更流畅。
SoundLoaderContext实例作为参数传递给Sound()构造函数或Sound实例的load()方法,以设置声音缓冲区的大小,如下所示。
var sound:Sound = new Sound(req, buffer);或者sound.load(req, buffer);示例:在加载song.mp3声音文件时,为使播放声音更加流畅,通过创建SoundLoaderContex实例设置声音缓冲大小为5秒,如下所示。
import flash.events.Event;import flash.events.ProgressEvent;import flash.media.Sound;import .URLRequest;//导入所需的类var sound:Sound = new Sound();var buffer:SoundLoaderContext = new SoundLoaderContext(5000);//定义缓冲区大小为5秒var req:URLRequest = new URLRequest("song.mp3");sound.load(req,buffer);//为声音设置缓冲区大小sound.addEventListener(PLETE, onLoadComplete);function onLoadComplete(event:Event):void{sound.play();}另外,还可以将buffer作为参数传递给Sound()构造函数,以设置声音的缓冲区大小,如下所示。
ActionScript编程 设置对象的大小
ActionScript 编程 设置对象的大小 作用:通过ActionScript 代码设置显示对象的宽度和高度,控制显示对象的大小。
说明:在Flash 软件中,用户可通过【属性】检查器设置舞台中各种元件的大小。
而在ActionScript3.0中,ActionScript 的显示对象(DisplayObject )类为用户提供了两种属性——height 属性和width 属性。
通过这两种属性,用户同样也可以方便地通过代码来控制各种对象实例的大小,方法如下所示。
DisplayObject.height=DisplayObjectHeight;DisplayObject.width=DisplayObjectWidth;在上面的代码中,各关键词的含义如下所示。
● DisplayObject 显示对象的实例名称● DisplayObjectHeight 显示对象的高度● DisplayObjectWidth 显示对象的宽度显示对象的高度单位和宽度单位均为px (像素),其精确度取小数点后1位。
显示对象(DisplayObject )类的这两种属性都是可读写的属性。
也就是说,允许用户随时设置或读取这两个属性的值。
在同一个多次设置某个显示对象的高度或宽度值。
但是,最终显示的结果以最后一次有效设置的值为准(函数等封包中的设置只有在执行时才有效)示例:通过ActionScript3.0,用户可以方便地控制各种显示对象的大小,甚至通过按钮等组件,使显示对象的大小随用户的操作而变化。
例如,在Flash 中导入一个购物篮的图像,并制作增大按钮和减小按钮的影片剪辑元件,如图13-1所示。
图13-1 导入和制作各种元件将购物篮的图像为ActionScript导出,设置类为displayobj,再分别将增大按钮和减小按钮为ActionScript导出,设置类为addwh和minuswh,并将其从舞台中删除,即可编写代码,如下所示。
ActionScript编程 AIR高级设置
ActionScript编程AIR高级设置作用:设置AIR程序的关联文件类型、初始窗口以及安装程序的默认安装路径等属性。
说明:在Flash CS4的【AIR-应用程序和安装程序设置】对话框中,可以单击【高级】右侧的【设置】按钮,设置AIR安装程序的进阶选项,如图15-13所示。
图15-13 单击设置按钮在弹出的【高级设置】对话框中,用户可制作个性化的安装程序,如图15-14所示。
图15-14 高级设置1.关联的文件类型Flash编写的AIR应用程序可以像普通应用程序一样处理某个扩展名的文件,或创建自定义扩展名的文件。
通过【关联的文件类型】部分,用户可在AIR应用程序安装时为AIR应用程序处理的文件类型设置扩展名、图标等。
首先,单击【添加文件类型】按钮,如图15-15所示。
图15-15 单击添加文件类型按钮在弹出的【文件类型设置】对话框中,即可设置新增加的文件类型,如图15-16所示。
图15-16 文件类型设置在图15-16中,包含8个文本框,可以设置应用程序打开的文件类型,如下所示。
●名称程序打开的文件类型名称。
例如,示例程序文档●扩展名程序打开的文件扩展名,例如,.txt,.xml等●描述在操作系统中,当鼠标悬停在该类文件上时显示的说明文字。
●内容类型文件指定的MIME文件类型,例如,文本文档的MIME是text/plain●128×128/48×48/32×32/16×16 这4个文本框用于分别设定各种大小的图标位置。
单击【浏览】按钮即可在弹出的对话框中选则相应的图标路径。
而单击【删除】按钮则可以将相应的图标路径删除。
在设置完【文件类型】对话框后,单击【确定】按钮即可返回【高级设置】对话框,完成添加文件类型。
在【高级设置】对话框中,选中相应的文件类型,可以单击【删除文件类型】按钮,删除文件类型。
同时也可以单击【编辑文件类型】按钮对文件类型进行修改。
2.初始窗口设置在【高级设置】对话框中,【初始窗口设置】的作用类似XHTMLDOM中的Window对象,其作用是设置AIR应用程序的初始大小和初始位置,如图15-17所示。
ActionScript编程 实战项目:MP3播放器
ActionScript编程实战项目:MP3播放器如果要播放mp3等格式的声音文件,通常会使用专业的声音播放软件,如Media Player、Real Player等。
其实在Flash中,使用ActionScript 语言就可以制作一个音乐播放器,并且可以实现声音的播放、暂停和停止等功能。
音乐播放器如图24-1所示。
图24-1 音乐播放器制作过程:(1)新建720×390像素的空白文档,将所有素材图像导入到【库】面板中,并将其导出为自定义类。
然后,再将Label和ProgressBar组件拖入到【库】面板,如图24-2所示。
图24-2 导入图像及拖入组件(2)在classes子文件夹中新建名称为main的ActionScript文件,并在该文件中使用import语句导入所需的类,以及创建包、main类和main()主函数,如下所示。
package classes{import flash.display.Sprite;import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.MovieClip;import flash.media.ID3Info;import flash.media.Sound;import flash.media.SoundTransform;import flash.media.SoundChannel;import .URLRequest;import fl.controls.ProgressBar;import bel;import flash.text.TextFormat;import flash.events.MouseEvent;import flash.utils.setInterval;public class main extends Sprite {public function main ():void {//主函数体}}}(3)在main类中实例化所有导入的位图图像,并创建用于控制播放声音的Sound对象、SoundChannel对象等,如下所示。
ActionScript编程 读取声音声谱
ActionScript编程读取声音声谱作用:获取声音的声谱数据以显示波形图。
说明:访问声谱数据是ActionScript 3.0新增的特性之一,它将这个功能内置于SoundMixer类之中,再加上新的ByteArray类,可以用很少的代码即可显示数据。
ByteArray是ActionScript 3.0新增的类,提供用于优化读取、写入以及处理二进制数据的方法和属性。
与一般数组基本相同,但是它的方法处理数据比一般数组快的多。
要获取音谱数据,首先要创建一个空的ByteArray对象,如下所示。
var byteArray:ByteArray = new ByteArray();创建完成后,将ByteArray再作为puteSpectrum()方法的参数,这个方法获得声音的快照并计算出左右声道的波形,每个声道取256个值,范围在-1.0到1.0,然后把数据再存储到ByteArray 对象中。
computeSpectrum()方法的基本形式如下所示。
SoundMixer. computeSpectrum(outputArray, FFTMode, stretchFactor);该方法可以接受以上3个参数,其详细介绍如下所示。
●outputArray 用于保存与声音关联的值的ByteArray对象。
如果由于安全性限制(areSoundsInaccessible == true)而导致任何声音不可用,则outputArray对象将保持不变。
如果停止了所有声音,则用零填充outputArray 对象。
●FFTMode 一个用于指示是否首先对声音数据执行Fourier 转换的布尔值。
如果设置为true,puteSpectrum()方法将返回频谱数据,而非波形数据。
频谱显示按声音频率(从最低频率到最高频率)排列的波幅,左侧表示的是低频,右侧表示的是高频。
可以使用快速傅立叶变换(FFT)将波形数据转换为频谱数据。
生成的频谱值范围介于0和约1.414(2的平方根)之间。
ActionScript编程 访问加载中的数据
ActionScript编程访问加载中的数据作用:在数据加载时访问数据。
说明:使用URLLoader对象无法在加载进行时读取数据。
progress事件只是用于通知加载进度。
要在数据加载时访问数据,需要使用.URLStream类。
URLStream对象可以在下载过程中立即读取二进制数据。
只要数据一加载,便可以随即为应用程序使用,这和使用URLLoader对象时需要等到整个文件下载完不同。
另外,URLStream类还允许在完成下载前关闭流。
使用new运算符和URLStream()构造函数可以创建新的URLStream 对象,方法如下所示。
var stream:URLStream = new URLStream();URLStream对象可以获取或设置以下属性,详细介绍如下所示。
●bytesAvailable 返回可在输入缓冲区中读取的数据的字节数。
●connected 指示此URLStream对象目前是否已连接。
如果已连接URLStream对象,则调用该属性会返回值true,否则会返回值false。
●endian 指示数据的字节顺序。
可能的值为Endian.BIG_ENDIAN或Endian.LITTLE_ENDIAN。
●objectEncoding 在写入或读取对象时,控制所使用的Action MessageFormat(AMF)的版本。
取数据之前必须使用的数据。
如果不能获得足够的数据,将引发URLStream对象可以使用以下方法来实现加载数据、关闭数据流、读取数据流中数据的功能,详细介绍如下所示。
●close() 立即关闭该流并取消下载操作。
无法在调用close()方法后从该流中读取数据。
●load() 开始加载指定的URL。
该方法包含一个request参数,表示指定加载URL的URLRequest对象。
●readBoolean() 从该流读取一个布尔值。
读取单个字节,如果字节非零,则返回true,否则返回false。
ActionScript 编程实战 Flash ActionScript首选参数
ActionScript 编程实战Flash ActionScript首选参数Flash是目前应用最广泛的ActionScript开发环境。
在编写ActionScript代码时,可以通过Flash的首选参数对ActionScript代码的格式、关键字颜色等进行设置,以符合用户的习惯,提高代码编写的效率。
在Flash CS4中,与ActionScript相关的首选参数主要包括两类,即ActionScript参数和自动套用格式参数。
1.ActionScript参数ActionScript参数的作用是设置Flash CS4在编写ActionScript代码时显示代码的参数。
在Flash CS4中执行【编辑】|【首选参数】命令,即可打开名为【首选参数】对话框。
在【首选参数】对话框中选择左侧列表菜单中的“ActionScript”,即可打开ActionScript参数的选项面板,如图1-9所示。
图1-9 ActionScript参数在【ActionScript】参数对话框中,包含如下选项。
●自动缩进为便于阅读和理解程序的源代码,多数编程语言都会按照一定的格式进行书写。
例如,为嵌套关系的语句块进行句首缩进处理。
选中该选项后,Flash CS4可以自动在用户换行时将代码缩进。
●制表符大小设置新行中缩进的字符数●代码提示在输入代码时启用代码提示●延迟代码提示出现的延迟●字体在脚本窗口和as文件窗口中显示的字体和大小●样式在脚本窗口和as文件窗口中显示的字体样式●使用动态字体映射所选字体中呈现每个字符。
如不选该选项,则Flash会替换上一个包含必须字符的系列●打开/导入定义打开或导入ActionScript时使用的字符编码●保存/导出定义保存或导出ActionScript时使用的字符编码●重新加载修改的文件定义脚本文件在被修改、移动或删除时Flash CS4进行的操作,包括3个选项。
“总是”表示不显示警告,直接加载新文件;“从不”表示不显示警告,文件仍保持当前状态;“提示”表示显示出警告的对话框,由用户选择进行的操作。
ActionScript编程 加载声音
ActionScript编程加载声音作用:加载外部的声音文件,以使得应用程序可以使用它。
说明:创建Sound类的实例,可以用来加载外部的声音文件,其创建方法与创建其它任何类实例相同,但是首先要确定Sound类被导入:import flash.media.Sound;加载新的声音文件,应该创建一个新的Sound对象,其创建方法如下所示。
var sound:Sound = new Sound(stream, context);Sound()构造函数可以接受以上两个可选参数,其详细介绍如下所示。
●stream 包含有外部声音文件URL地址的URLRequest对象。
●context 声音数据保留在Sound对象的缓冲区中的最小毫秒数。
在开始回放以及在网络中断后继续回放之前,Sound对象将一直等待直至至少拥有这一数量的数据为止。
默认值为1000(1秒)。
如果将有效的URLRequest对象传递到Sound()构造函数,该构造函数将自动调用Sound对象的load()方法;如果未将有效的URLRequest 对象传递到Sound()构造函数,则必须自己调用Sound对象的load()方法,否则将不加载声音流。
声音文件加载到该必须创建新的除了在最简单的情况下,应用程序都应关注声音的加载进度,并监视在加载期间出现的错误。
例如,声音文件非常大,在用户单击触发该声音的按钮时,该声音可能没有完全加载。
如果尝试播放未加载的声音可能会导致运行时错误。
为了避免这样的情况发生,最好等待声音完全加载后,再让用户执行可能启动声音播放的动作。
Sound对象将在声音加载过程中调度多种不同的事件。
应用程序可以侦听这些事件以跟踪加载进度,并确保在播放之前完全加载声音。
表24-1中列出了可以由Sound对象调度的事件。
在加载较大的声音文件时,尽管Flash Player允许应用程序在完全加载声音之前播放声音,但可能需要向用户指示已加载了声音数据以及已播放声音的进度。
声音文件大小的计算方法
声音文件大小的计算方法
计算声音文件的大小涉及到多个因素,包括采样率、位深度、通道数和持续时间。
以下是计算声音文件大小的常见方法。
1. 计算每帧的位数(bits per sample):
每帧的位数等于位深度乘以通道数。
例如,如果位深度为16位,通道数为2,则每帧的位数为16x2=32位。
2. 计算每秒的比特率(bitrate):
3.计算单个音频文件的大小:
4.将比特转换为字节:
由于1字节等于8比特,可以将音频文件的比特数除以8来计算字节数。
例如,如果音频文件的比特数为84,672,000比特,则音频文件的大小为84,672,000/8=10,584,000字节。
需要注意的是,以上计算方法仅适用于无损音频文件(例如WAV或FLAC)。
对于有损音频文件(例如MP3或AAC),文件大小将由压缩算法决定,与上述方法不完全一致。
Mac命令行使用技巧查看和修改声音设置
Mac命令行使用技巧查看和修改声音设置在Mac系统中,命令行是一种非常强大的工具,可以帮助用户快速且高效地完成各种任务。
声音设置是我们在使用Mac时常常需要调整的一项功能。
本文将介绍一些Mac命令行中查看和修改声音设置的技巧,帮助读者更好地掌握和利用这一功能。
一、查看声音设置在命令行中查看当前的声音设置是非常简单的。
我们可以使用以下命令来获取当前声音的状态:```$ osascript -e 'get volume settings'```运行以上命令后,系统将返回当前音量的信息,包括输出音量、警告音量以及音效是否开启等。
这样我们就可以清楚地了解当前的声音设置情况。
二、修改声音设置1. 调整音量大小如果我们想要通过命令行来修改Mac的音量大小,可以使用以下命令:```$ osascript -e "set volume output volume 80"```以上命令将把音量设置为80%,你可以根据实际情况调整后面的数字来调整音量大小。
2. 静音和取消静音有时,我们可能需要将Mac的声音进行静音或者取消静音。
使用以下命令可以实现这个功能:```$ osascript -e "set volume with output muted"$ osascript -e "set volume without output muted"```第一个命令将把声音静音,而第二个命令则是取消静音。
通过这些命令,我们可以方便地调整Mac的声音输出状态。
3. 警告音量设置在命令行中,我们也可以设置和调整Mac的警告音量。
使用以下命令可以实现这个功能:```$ osascript -e "set volume alert volume 50"```以上命令将把警告音量设置为50%,你可以根据需要来调整后面的数字。
4. 音效开启和关闭Mac系统中的音效是我们在使用电脑时经常会接触到的一项功能。
用Flash制作音量大小控制程序
用 Flash 制作音量控制程序笔者在《中国电脑教育报》2002 年第 12 期第 A28 版发表了一篇《音量大小任我调》, 相对 Authorware而言,Flash中音量大小的动态调节要简单许多,它不需要外挂函数,只需 使用自身的 Actions 函数就可以解决。
制作思路:通过拖动影片(MovieClip)改变其位置,然后将位置的值作为音量的值, 从而达到动态调节音量的目的。
下面就为朋友们介绍音量控制程序的具体制作方法:1、 启动 Flash 5,新建一个名为“音量控制”的文件,单击“File→Import…(Ctrl+R)” 导入需要的声音文件,按 Ctrl+L打开“Library库”,选中导入的声音文件,单击鼠标右键, 选择菜单中的“Linkage…”打开“Symbol Linkage Properties”对话框,选择“Export this symbol”,然后在 entifier 中输入“sound ”。
2、 按 Ctrl+F8 创建一个名为“音量面板”的MovieClip,然后绘制一个直角三角形(如 图 1),三角形的宽(W) 100,高(H)7,数值的调节可以通过 Info面板(Ctrl+Alt+I);按 Ctrl+F8 创建一个名为“音量滑块”的 Buttons,在 Up帧绘制一个小圆作为滑块,宽和高都是 8,然 后在其他的帧按 F6 键插入关键帧。
图 13、 按 Ctrl+F8 创建一个名为“滑块移动”的 MovieClip,将“音量滑块”拖放在场景 中,然后为按钮加上如 Actions 语句:on (press) {startDrag ("/hk", true, x65, y+3, x+35, y+3);}on (release) {stopDrag ();}//说明:这里的 hk为“滑块移动”的 Instance name ;后面的代数式主要是用来控制音 量滑块的移动范围,目的是使滑块能够在“音量面板”上移动,这里要根据实际情况调节。
audiotrack.getminbuffersize规则
audiotrack.getminbuffersize规则AudioTrack 是 Android 平台上的一个音频类,用于播放和录制音频。
AudioTrack 的 getMinBufferSize 方法用于获取最小缓冲区大小。
这个大小是用于音频数据存储的缓冲区的大小,以字节为单位。
AudioTrack.getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat) 方法的参数如下:1.sampleRateInHz:音频的采样率,以赫兹为单位。
例如,44100 Hz 表示音频是按照每秒 44100 次采样的。
2.channelConfig:音频的通道配置。
这通常是一个整数,表示音频的通道数(例如,1 表示单声道,2 表示立体声)。
3.audioFormat:音频的格式。
这通常是一个整数,表示音频的数据格式(例如,AudioFormat.ENCODING_PCM_16BIT 表示16 位 PCM 编码)。
4.AudioTrack.getMinBufferSize 方法返回一个整数,表示最小缓冲区大小(以字节为单位)。
这个大小是根据音频的采样率、通道配置和数据格式计算出来的。
5.使用 AudioTrack 时,通常需要创建一个大于或等于这个最小缓冲区大小的缓冲区来存储音频数据。
这样,AudioTrack 才能正确地播放或录制音频。
需要注意的是,最小缓冲区大小可能受到设备硬件和操作系统版本等因素的影响。
因此,在编写代码时,最好先调用AudioTrack.getMinBufferSize 方法来获取最小缓冲区大小,然后根据这个大小来创建缓冲区。
ActionScript编程 读取音量
ActionScript编程读取音量作用:获取正在播放声音的音量。
说明:单个SoundChannel对象控制声音的左和右立体声声道。
如果mp3声音是单声道声音,SoundChannel对象的左和右立体声声道将包含完全相同的波形。
通过使用SoundChannel对象的leftPeak和rightPeak属性可以获取正前播放声音的左右立体声声道的振幅。
leftPeak属性指示左声道的当前振幅(音量);rightPeak属性指示右声道的当前振幅(音量)。
它们的值范围均从0(静音)到1(最大音量)。
SoundChannel对象leftPeak和rightPeak属性的使用方法如下所示。
soundChannel.leftPeak; //左声道音量soundChannel.rightPeak; //右声道音量并不表示实际回放音量。
实际回放音量是声音波形的波幅以及SoundChannel示例:加载并播放song.mp3声音文件,计算左右声道的振幅,然后通过绘制两个矩形,以可视化的界面显示这两个声道的振幅,如下所示。
import flash.media.Sound;import flash.media.SoundChannel;import .URLRequest;import flash.events.Event;//导入所需的类var soundChannel:SoundChannel;var req:URLRequest=new URLRequest("song.mp3");var sound:Sound = new Sound();sound.load(req);soundChannel=sound.play();addEventListener(Event.ENTER_FRAME,onEnterFrame); function onEnterFrame(event:Event):void {var leftLevel:Number = soundChannel.leftPeak * 100;//计算左声道振幅var rightLevel:Number = soundChannel.rightPeak * 100; //计算右声道振幅graphics.clear();//绘制左声道矩形graphics.beginFill(0xcccccc);graphics.drawRect(10,10,leftLevel,10);graphics.endFill();//绘制右声道矩形graphics.beginFill(0xcccccc);graphics.drawRect(10,25,rightLevel,10);graphics.endFill();}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ActionScript编程读取声音文件大小
作用:
获取声音文件的大小及当前已加载的大小。
说明:
在加载声音文件时,通常需要让用户看到当前加载数据的进度,与Window Media Player类似,最好是一个可视化的进度条。
Sound对象的bytesLoaded和bytesTotal属性可以获取声音文件的总大小和已加载大小。
bytesTotal属性获取当前播放的声音文件的总大小(以字节为单位);bytesLoaded属性获取已经加载的数据大小。
如果将这两个属性值相除,即可获取声音文件加载的百分比,如下所示。
var percent:uint = event.bytesLoaded / event.bytesTotal * 100;
部加载的文件有用。
示例:
通过侦听enterFrame事件调用onEnterFrame()函数,该函数读取声音文件的总大小及当前加载声音的大小,并计算出加载进度的百分比。
然后,通过Graphics对象绘制表示加载进度的矩形,如下所示。
import flash.events.Event;
import flash.media.Sound;
import .URLRequest;
//导入所需的类
var sound:Sound = new Sound();
var req:URLRequest=new URLRequest("song.mp3");
sound.load(req);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//侦听时间轴事件,调用onEnterFrame()函数显示进度条
function onEnterFrame(event:Event):void {
var barWidth:int=200;
var barHeight:int=5;
//定义进度条的宽度和高度
var loaded:int=sound.bytesLoaded;
//获取已加载声音文件的大小
var total:int=sound.bytesTotal;
//获取声音文件的总大小
if (total > 0){
graphics.clear(); //清除绘制的图形
var percent:Number = loaded / total;
//加载声音文件的百分比
graphics.beginFill(0xCCCCCC);
graphics.drawRect(10,10,barWidth * percent,barHeight);
graphics.endFill();
//绘制进度条
}
}。