177 lines
3.7 KiB
Markdown
177 lines
3.7 KiB
Markdown
# AudioManager的使用 #
|
||
|
||
通过 AudioManager 类 加载音频并播放音频
|
||
|
||
# 函数声明 #
|
||
通过调用 createSound 方法返回 Sound 音频源 对象
|
||
> public createSound (url:string, success:Function=null, error:Function=null):Sound
|
||
|
||
通过调用 playSound 方法返回 Channel 对象 Channel 类控制应用程序中的声音
|
||
> public playSound(sound: Sound, options: any)
|
||
|
||
|
||
AudioManager.instance.createSound("../resource/audio/1.mp3", (e) => {
|
||
//Channel 类控制应用程序中的声音
|
||
this._channel = AudioManager.instance.playSound(e, { "volume": 0.5, "loop": true });
|
||
this._channel.play();
|
||
})
|
||
|
||
|
||
|
||
# 示例 #
|
||
|
||
|
||
在以下示例中,用户可暂停并重放声音文件
|
||
|
||
|
||
|
||
|
||
private _channel: egret3d.Channel;
|
||
private _sound: egret3d.Sound;
|
||
private _txt: gui.UITextField;
|
||
private _btnPlay: gui.UILabelButton;
|
||
private _btnStop: gui.UILabelButton;
|
||
private _btnPause: gui.UILabelButton;
|
||
private startTime: number = 0;
|
||
|
||
|
||
public initedGui() {
|
||
|
||
|
||
this._txt = new gui.UITextField();
|
||
this._txt.text = "Time:" + this.startTime;
|
||
|
||
|
||
this._btnPlay = new gui.UILabelButton();
|
||
this._btnPlay.label = "Play";
|
||
this._btnPlay.width = 35;
|
||
this._btnPlay.height = 20;
|
||
this._btnPlay.x = 0;
|
||
this._btnPlay.y = 50;
|
||
|
||
this._btnStop = new gui.UILabelButton();
|
||
this._btnStop.label = "Stop";
|
||
this._btnStop.width = 35;
|
||
this._btnStop.height = 20;
|
||
this._btnStop.x = 40;
|
||
this._btnStop.y = 50;
|
||
|
||
this._btnPause = new gui.UILabelButton();
|
||
this._btnPause.label = "Pause";
|
||
this._btnPause.width = 35;
|
||
this._btnPause.height = 20;
|
||
this._btnPause.x = 80;
|
||
this._btnPause.y = 50;
|
||
|
||
|
||
this._view.addGUI(this._txt);
|
||
this._view.addGUI(this._btnPlay);
|
||
this._view.addGUI(this._btnStop);
|
||
this._view.addGUI(this._btnPause);
|
||
|
||
|
||
this.initListener();
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
注册监听事件
|
||
|
||
|
||
|
||
|
||
|
||
private initListener() {
|
||
var self = this;
|
||
self._btnPlay.addEventListener(egret3d.MouseEvent3D.MOUSE_CLICK, (e) => {
|
||
|
||
if (this._channel) {
|
||
if (!this._channel.isPlaying()) {
|
||
this._channel.unpause();//播放处于暂停状态的音频
|
||
}
|
||
|
||
}
|
||
else {
|
||
AudioManager.instance.createSound("../resource/audio/music.mp3", (e) => {
|
||
this._sound = e;
|
||
this._channel = AudioManager.instance.playSound(self._sound, { "volume": 0.5, "loop": true });
|
||
this._channel.play();
|
||
})
|
||
}
|
||
|
||
}, this);
|
||
|
||
self._btnStop.addEventListener(egret3d.MouseEvent3D.MOUSE_CLICK, (e) => {
|
||
this._channel.stop();
|
||
this.startTime = 0;
|
||
this._txt.text = "Time:" + self.startTime;
|
||
}, this);
|
||
|
||
|
||
self._btnPause.addEventListener(egret3d.MouseEvent3D.MOUSE_CLICK, (e) => {
|
||
if (this._channel.isPlaying())//如果媒体文件被暂停,则返回true,否则返回false
|
||
this._channel.pause();//暂停处于播放状态的音频
|
||
}, this);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var drawMeter = function () {
|
||
|
||
|
||
if (self._channel && self._channel.isPlaying()) {
|
||
self._txt.text = "Time:" + self.startTime++;
|
||
|
||
}
|
||
requestAnimationFrame(drawMeter);
|
||
|
||
}
|
||
|
||
requestAnimationFrame(drawMeter)
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
运行结果如图所示
|
||
|
||
![](sound.gif)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|