前面一篇講解了怎麼播放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
這兩個接口,前者主要是用於播放音效,後者主要是用於播放背景音樂。