音乐加载模式
选中一个声音资源,在属性检查器中,我们可以看到两种不同的加载模式。
1、Web Audio:只对Web平台有效,在引擎内以buffer 的形式缓存,兼容性好,但占用内存空间较大。
2、DOM Audio:通过生成一个标准的 audio 元素来播放声音资源,缓存的就是这个 audio 元素。只允许播放一个声音资源,适合较大的音乐加载,例如加载背景音乐。
注意:音频默认使用Web Audio 加载并播放:
cc.loader.load(audio, callback);
音乐播放和停止 方式一:
1、我们在resources文件夹下,新建audioFile文件夹,用于存放所需要的音乐和音效资源。之后,把准备的bgMusic.mp3资源放入该文件夹。
2、在主页面中添加一个button组件,并命名为musicPlayBtn。同理,创建一个musicPauseBtn。
3、接下来我们写一个播放和暂停音乐的脚本audioScript。直接使用
cc.audioEngine.play(audio, loop, volume);
并编写代码如下:
cc.Class({
extends: cc.Component,
properties: {
musicPlayBtn : cc.Button, //播放音乐 按钮
musicPauseBtn : cc.Button, //停止播放 按钮
audioResource : cc.AudioClip, //音频
},
onClickMusicPlayBtn () {
this.currentAudio = cc.audioEngine.play(this.audioResource, false, 1);
},
onClickMusicPauseBtn () {
cc.audioEngine.stop(this.currentAudio);
},
start () {
},
});
上述中的audioResource需要绑定到我们播放的音乐资源,下述内容有讲解。
4、之后,将audioScript脚本附属到相应节点,并将对应的节点进行关联。
5、选中musicPlayBtn,在属性检查器中,我们将Click Event设置为1,之后我们可以看到下图所示的属性配置。其中1位置需要配置 “已经绑定了脚本的节点”, 2位置选择需要哪一个脚本,3位置选择该脚本的函数,也是点击当前按钮的回调接口,4位置填写需要的参数,可以不写。
6、绑定好相应的脚本和节点之后,可以完整的运行,并实现了音乐和音效的播放和关闭功能。
音乐播放和停止 方式二:
1、同方式一的原理,将audioScript脚本的代码修改为下:
cc.Class({
extends: cc.Component,
properties: {
audioSource: {
type: cc.AudioSource,
default: null
},
},
play: function () {
this.audioSource.play();
},
pause: function () {
this.audioSource.pause();
},
});
上述代码的audioSource、play()以及pause() 都和方式一第4条操作相同,唯一的区别就是播放和停止音乐的接口不同。