AudioManager 类允许您在应用程序中 播放 HTML5 Audio 和 Web Audio。它集合了加载声音文件、播放2D或者3D效果方法,可以使我们方便的控制声音播放。 ## 1、AudioManager属性 * `context : any` AudioContext 上下文 egret3d.AudioManager * `instance : egret3d.AudioManager` [静态] [只读] AudioManager类的单例模式,返回一个 AudioManager 对象 egret3d.AudioManager * `volume : number` 音量,范围从 0(静音)至 1(最大幅度) 注意以上是Channel的属性,可以直接设置如下: > `AudioManager.maxDistance = 10;` 但是必须在初始化的时候设置,或者在play之前设置。通过对这些属性的设置,能够产生具有空间属性的声音效果。 ## 2、AudioManager方法 * `AudioManager ()` 创建一个新的 AudioManager 对象 * `createSound ( url :string, success :Function, error :Function ):egret3d.Sound` 生成一个新的 Sound 对象 ,将声音数据加载到 Sound 对象中 * `hasAudio ( ):boolean` 是否支持 HTML5 Audio tag API * `hasAudioContext ( ):boolean` 是否支持 Web Audio API * `isSupported ( url :string, audio :HTMLAudioElement ):boolean` 浏览器是否可以播放这种音频类型 * `playSound ( sound :egret3d.Sound, options :any )` 生成一个新的 Channel 对象来播放该声音 * `playSound3d ( sound :egret3d.Sound, position :egret3d.Vector3D, options :any ):egret3d.Channel3d` 生成一个新的 Channel3d 对象来播放该声音 ## 3、代码示例 ``` public constructor() { super(); this._sound = egret3d.AudioManager.instance.createSound("resource/ccnn.mp3", this.loadSoundSuccess); } // 加载声音文件成功 private loadSoundSuccess(e): void { this._manager = new egret3d.AudioManager(); // 生成一个新的 Channel 对象来播放该声音。 this._channel = this._manager.playSound(e, { "volume": 0.5, "loop": true }); // 生成一个新的 Channel3d 对象来播放该声音。 this._channel3d = this._manager.playSound3d(e, new egret3d.Vector3D(0, 0, 10), { "volume": 0.5, "loop": true }); //Channel 可停止声音并监控音量。 // this._channel.pause(); } ``` 使用`F5`调试即可播放。