FLASH CS4 控制音频播放

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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类本身,而不是该类的实例。

2.暂停与继续

除了停止声音播放外,很多播放器还可以实现暂停声音播放,当需要时再从当前暂停的位置继续播放。在Flash中,暂停声音播放需要使用flash.media包中的SoundChannel类。

SoundChannel类的作用主要是控制Flash影片中的声道,监控声道的幅度、播放的进度等。通过其Position属性可以记录当前播放的时间,然后使用stop()方法停止该声道的播放。

当需要声音继续播放时,则可以为Sound类的play()方法加参数,使其继续按照记录的已播放时间播放声音。

例如,获取名为bgmusic.mp3的外部声音文件,实现控制该文件的暂停播放和继续播放,代码如下。

var music:Sound= new Sound(new URLRequest("bgmusic.mp3"));

//加载外部声音

var channel:SoundChannel;

//声明声道

var pauseBtn:SimpleButton=new SimpleButton();

//实例化暂停按钮

var playBtn:SimpleButton=new SimpleButton();

//实例化播放按钮

var onPause:Boolean=false;

//声明变量onPause判断声音是否暂停

var position:int

//声明变量position作为播放进度

playBtn.addEventListener(MouseEvent.CLICK,playMusic);

//为播放按钮添加鼠标单击事件

pauseBtn.addEventListener(MouseEvent.CLICK,pauseMusic);

//为暂停按钮添加鼠标单击事件

function playMusic(event:MouseEvent):void{

//播放按钮的事件函数

if(onPause==false){

//判断如果非暂停状态

channel=music.play();

//直接在声道中播放音乐

}else{

//否则(处于暂停状态)

channel=music.play(position);

//则从已播放的进度播放音乐

onPause=false;

//取消暂停的状态

}

}

function pauseMusic(event:MouseEvent):void{

//暂停按钮的事件函数

if(onPause==false){

//判断,在非暂停状态

position=channel.position;

//记录当前播放进度

channel.stop();

//停止声音播放

onPause=true;

//确认暂停的状态

}

}

3.读取声音文件的附加信息

通常在网上下载或从CD中抓轨获得的mp3音乐都包含了音乐的附加信息(又称ID3),如演出者、作者、专辑名称和发行年代等信息。这些信息以标签的形式存储在mp3文件的开头。ActionScript可以方便地读取这些信息。读取mp3音乐的ID3信息可以使用flash.me dia包中的ID3Info类。ID3Info类共有7种属性。

●album 歌曲所在专辑名称

●artist 艺术家名称

●comment 录制该音乐的相关注解

●genre 歌曲的流派

相关文档
最新文档