新版本的 Sound 与老版本有很多不同,首先 Sound 类本身不再支持对音频的 stop 以及声音的大小进行设置,这些将会在 play 之后创建的 SoundChannel 中去设置。
另外解决了不能同时播放多个同一个音频的问题(手机必须得支持同时播放多个音频)。
SoundEvent 也被移除了,您可以通过监听 SoundChannel 的 egret.Event.SOUND_COMPLETE 这个事件获得声音播放完成的消息。
获取音频的三种方式
1、创建一个 Sound 对象,通过 load 方法加载路径中的声音文件。
Sound 类只有2个加载的事件:
egret.Event.COMPLETE音频加载完成时抛出
egret.IOErrorEvent.IO_ERROR音频加载失败时抛出
2、通过 URLLoader 获取音频
3、通过 RES 获取音频
一般推荐用这种方法,最简单
play 的2个参数:
startTime:声音开始播放的位置,默认为0。
loops:声音播放的次数,小于等于0均为无限循环播放,大于0按照对应的值播放次数。
和之前不一样的是,新版 Sound play 之后,会创建一个 SoundChannel 对象,开发者可以直接对 SoundChannel 进行操作。
volume音量范围从0(静音)至1(最大音量)position当前声音播放的位置(以秒为单位)stop停止在该声道中播放声音
对于声音的播放完成的事件监听,从原来对 Sound 进行监听,变成对 play 后创建的 SoundChannel 监听 egret.Event.SOUND_COMPLETE ,并且去掉了 Sound 的 pause 和 resume方法。如果想要实现此方法,可以根据 SoundChannel 返回的 position 和 Sound 的 play 来实现。