前面一篇讲解了怎么播放Animation动画,这里讲一下怎么播放Audio音频,其实操作很简单,和前面的差不了多少,主要就是通过在节点上挂载对应的组件,然后再通过脚本代码来控制播放。
一、AudioSource 组件介绍
属性 | 说明 |
---|---|
Clip |
用来播放的音频资源对象 |
Volume |
音量大小,范围在 0~1 之间 |
Mute |
是否静音 |
Loop |
是否循环播放 |
Play on load |
是否在组件激活后自动播放音频 |
preload |
是否在未播放的时候预先加载 |
我们把准备好的资源拉拽到组件的Clip属性里面。
二、脚本代码控制音频播放
脚本控制一共有两种方法:1. 使用 AudioSource 组件播放;2. 使用 AudioEngine 播放
1. 使用 AudioSource 组件播放
cc.Class({
extends: cc.Component,
properties: {
audioSource: {
type: cc.AudioSource,
default: null
},
},
// 音频播放
play: function () {
this.audioSource.play();
},
// 音频暂停播放
pause: function () {
this.audioSource.pause();
},
});
2. 使用 AudioEngine 播放
AudioEngine 与 AudioSource 都能播放音频,它们的区别在于 AudioSource 是组件,可以添加到场景中,由编辑器设置。而 AudioEngine 是引擎提供的纯 API,只能在脚本中进行调用。
步骤:
- 在脚本的 properties 中定义一个
AudioClip
资源对象 - 直接使用
cc.audioEngine.play(audio, loop, volume);
播放,如下所示:
cc.Class({
extends: cc.Component,
properties: {
audio: {
default: null,
type: cc.AudioClip
}
},
onLoad: function () {
this.current = cc.audioEngine.play(this.audio, false, 1);
},
onDestroy: function () {
cc.audioEngine.stop(this.current);
}
});
目前建议使用audioEngine.play
接口来统一播放音频。或者也可以使用audioEngine.playEffect
和 audioEngine.playMusic
这两个接口,前者主要是用于播放音效,后者主要是用于播放背景音乐。