2023年7月14日发(作者:)
FLASH CS4 控制音频播放
在之前的章节中,已介绍了如何在Flash中加载声音。Flash CS4除了加载声音外,还可以对声音播放进度进行一系列的控制,如播放、暂停、停止。除此之外,还可以控制音量的大小。
1.停止声音
在之前的章节中已经介绍了如何在Flash中播放音频。在制作音频播放器时,除了需要播放音频外,还需要控制音频的停止。这需要使用到包中的SoundMixer类。
SoundMixer是一种控制全局的类,其可以控制由Flash影片播放的所有声音流,并且拥有多种全局控制的属性和方法。也是说,SoundMixer并不控制动态创建的Sound对象。
SoundMixer常用的属性主要有两种:
bufferTime 该属性的作用是设置声音流在开始传输前预加载的时间,单位为秒。
soundTransform 该属性的作用是为SoundMixer对象引入控制全局的SoundTransform对象。
SoundMixer的这两种属性都属于静态方法,仅可以操作嵌入到Flash影片中的声音,无法对在ActionScript中动态创建的声音进行操作。除了以上的属性外,SoundMixer还包含3种常用的方法。
areSoundsInaccessible() 确定是否因安全限制而无法访问声音
computeSpectrum() 获取当前声音的波形快照,并将其放在指定的ByteArray对象中。
stopAll() 停止当前播放的所有声音。
例如,在一个播放器中,停止播放的按钮实例名称为stopBtn,则为其添加的停止播放代码如下。
ntListener(,stopMusic);
function stopMusic(event:MouseEvent):void{
l();
}
需要注意的是,在使用stopAll()方法时,所引用的SoundMixer类本身,而不是该类的实例。
2.暂停与继续
除了停止声音播放外,很多播放器还可以实现暂停声音播放,当需要时再从当前暂停的位置继续播放。在Flash中,暂停声音播放需要使用包中的SoundChannel类。
SoundChannel类的作用主要是控制Flash影片中的声道,监控声道的幅度、播放的进度等。通过其Position属性可以记录当前播放的时间,然后使用stop()方法停止该声道的播放。
当需要声音继续播放时,则可以为Sound类的play()方法加参数,使其继续按照记录的已播放时间播放声音。
例如,获取名为3的外部声音文件,实现控制该文件的暂停播放和继续播放,代码如下。
var music:Sound= new Sound(new URLRequest("3"));
//加载外部声音
var channel:SoundChannel;
//声明声道
var pauseBtn:SimpleButton=new SimpleButton();
//实例化暂停按钮
var playBtn:SimpleButton=new SimpleButton(); //实例化播放按钮
var onPause:Boolean=false;
//声明变量onPause判断声音是否暂停
var position:int
//声明变量position作为播放进度
ntListener(,playMusic);
//为播放按钮添加鼠标单击事件
ntListener(,pauseMusic);
//为暂停按钮添加鼠标单击事件
function playMusic(event:MouseEvent):void{
//播放按钮的事件函数
if(onPause==false){
//判断如果非暂停状态
channel=();
//直接在声道中播放音乐
}else{
//否则(处于暂停状态)
channel=(position);
//则从已播放的进度播放音乐
onPause=false;
//取消暂停的状态
}
}
function pauseMusic(event:MouseEvent):void{
//暂停按钮的事件函数
if(onPause==false){
//判断,在非暂停状态
position=on;
//记录当前播放进度
();
//停止声音播放
onPause=true;
//确认暂停的状态
}
}
3.读取声音文件的附加信息
通常在网上下载或从CD中抓轨获得的mp3音乐都包含了音乐的附加信息(又称ID3),如演出者、作者、专辑名称和发行年代等信息。这些信息以标签的形式存储在mp3文件的开头。ActionScript可以方便地读取这些信息。读取mp3音乐的ID3信息可以使用包中的ID3Info类。ID3Info类共有7种属性。
album 歌曲所在专辑名称
artist 艺术家名称
comment 录制该音乐的相关注解
genre 歌曲的流派
songName 歌曲的名称
track 歌曲的音轨
year 歌曲录制的年份
读取这些信息可以使用如下的方法。
var music:Sound=new Sound(new URLRequest("3"));
//实例化音乐
trace(me);
//输出歌曲名
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689299631a228079.html
评论列表(0条)