管理器
介绍#
mk.audio 是框架的音频管理器,支持音频多分组管理,动态加载,最大播放数量控制优化,内置自动切换的通用/微信双版本代码
属性#
groupMap#
groupMap 是包含了所有音频分组(包含音频类型和自定义的分组)的只读 Map,类型为 ReadonlyMap<number, Audio_.Group>
方法#
add#
add 是动态加载音频单元的接口,可以加载文件夹/单个资源
// 加载 db://resources/test.mp3
mk.audio.add('test.mp3', this, {
type: GlobalConfig.Audio.Type.Music,
loadConfig: {
bundleStr: 'resources',
},
isDir: false,
groupIdNumList: [],
});
参数#
add(url_, target_, config_)
-
url_: 资源路径,和mk.asset.get类型一致 -
target_: 资源跟随释放对象 -
config_: 配置数据 -
config_.type: 音频类型,枚举定义在GlobalConfig.Audio.Type -
config_.groupIdNumList: 音频分组 ID 列表 -
config_.loadConfig: 资源加载配置 -
config_.isDir: 是否是文件夹
play#
播放或者恢复暂停的音频单元
如果传递音频资源路径则代表动态加载后播放,动态加载的音频资源将跟随场景切换释放,
或者手动调用 find("音频跟随释放节点")?.destroy() 来进行释放
返回值(异步):
- null:播放失败
- 音频单元:播放成功
mk.audio.play(this.music, {
isLoop: false,
volumeNum: 0.5,
});
mk.audio.play('db://assets/resources/xxx.mp3');
参数#
play(audio_, config_)
-
audio_: 音频单元或者音频资源路径 -
config_: 可选,播放配置 -
config_.isLoop: 设置音频单元是否循环(包括之后) -
config_.volumeNum: 设置音频单元的音量(包括之后)
如果
audio_是资源路径,则默认为音频类型为音效
pauseAll#
暂停当前所有音频,但不包括之后播放的音频
resumeAll#
恢复当前暂停的所有音频
stopAll#
停止当前的所有音频
参数#
stopAll(isPreventPlay_)
-
isPreventPlay_: 可选,是否阻止后续音频播放;默认值 false如果为 true,则后续可以通过执行音频类型分组的
stop(false)来恢复对应分组的播放能力
例如
mk.audio.getGroup(GlobalConfig.Audio.Type.Music).stop(false);
getGroup#
获取音频组对象,如果不存在则创建