定义播放按钮
// 播放按钮
const playLabel: egret.TextField = new egret.TextField();
playLabel.text = "PLAY";
playLabel.touchEnabled = true;
通过Sound加装音频
const sound: egret.Sound = new egret.Sound();
sound.addEventListener(egret.Event.COMPLETE, function (event: egret.Event) {
this.addChild(playLabel);
playLabel.addEventListener(egret.TouchEvent.TOUCH_TAP, function (event: egret.Event) {
sound.play();
}, this);
}, this);
sound.addEventListener(egret.IOErrorEvent.IO_ERROR, function (event: egret.IOErrorEvent) {
console.log("loaded error!");
}, this);
sound.load("resource/assets/sound.mp3");
通过 URLLoader 加装音频
const loader: egret.URLLoader = new egret.URLLoader();
loader.addEventListener(egret.Event.COMPLETE, function (event: egret.Event) {
const sound: egret.Sound = loader.data;
this.addChild(playLabel);
playLabel.addEventListener(egret.TouchEvent.TOUCH_TAP, function (event: egret.Event) {
sound.play();
}, this);
}, this);
loader.dataFormat = egret.URLLoaderDataFormat.SOUND;
loader.load(new egret.URLRequest("resource/assets/sound.mp3"));
通过 res 加装音频
const sound: egret.Sound = RES.getRes("sound_mp3");
this.addChild(playLabel);
playLabel.addEventListener(egret.TouchEvent.TOUCH_TAP, function (event: egret.Event) {
sound.play();
}, this);
播放停止示例
let sound: egret.Sound;
let soundChannel: egret.SoundChannel;
//创建 URLLoader 对象
const loader: egret.URLLoader = new egret.URLLoader();
//设置加载方式为声音
loader.dataFormat = egret.URLLoaderDataFormat.SOUND;
//添加加载完成侦听
loader.addEventListener(egret.Event.COMPLETE, function (event: egret.Event) {
const loader: egret.URLLoader = <egret.URLLoader>event.target;
//获取加载到的 Sound 对象
sound = <egret.Sound>loader.data;
this.addChild(playLabel);
playLabel.addEventListener(egret.TouchEvent.TOUCH_TAP, onTouch, this);
}, this);
//开始加载
loader.load(new egret.URLRequest("resource/assets/sound.mp3"));
function onTouch() {
console.log(soundChannel);
if (soundChannel) {
soundChannel.stop();
soundChannel = null;
return;
}
soundChannel = sound.play(); // 使用SoundChannel播放音频
//Egret 3.0.4 新增获取音频长度 length 属性。
console.log(sound.length);
soundChannel.addEventListener(egret.Event.SOUND_COMPLETE, function (event: egret.Event): void {
console.log("onSoundComplete");
}, this);
}