egret-docs-master/Engine3D/sound/example/README.md

177 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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)