SoundChannel是播放中声音的控制手段。可以利用SoundChannel对象停止一个声音的播放。没有直接提供暂停和继续的方法,因为声音文件的播放启动并不需要耗费额外的资源,而一个播放中的SoundChannel对象是耗费资源的。没有必要在声音不播放时依然提供资源维系SoundChannel对象(至少可以避免多余的噪音信号)。为了实现一个声音的暂停和继续,需要重新调用一个Sound对象的play()方法。但是该方法可以从指定的位置开始播放,因此,只要将SoundChannel.position作为参数提供,就能够实现暂停/继续的功能。
下面的代码演示了暂停/继续功能的代码实现:
stage.addEventListener(KeyboardEvent.KEY_UP,keyfunc);
function keyfunc(eev:KeyboardEvent):void {
//构建字符串
var tstr:String=String.fromCharCode(eev.charCode);
switch (tstr) {
//停止
case "1" :
sndchannel.stop();
sdtf.text="Stop";
sndchecker.stop();
break;
//播放
case "2" :
sndchannel=mysound.play(sndchannel.position);
sndchecker.start();
break;
default :
//donothing;
}
}
读者可以尝试多次运行Sound对象的play()方法,创建混合的声音输出。