FLASH CS4 控制音频播放
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 歌曲的流派