CocosCreator 在遊戲中播放音樂音效 (第十六篇)

前面一篇講解了怎麼播放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,只能在腳本中進行調用。
步驟:

  1. 在腳本的 properties 中定義一個AudioClip資源對象
  2. 直接使用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.playEffectaudioEngine.playMusic 這兩個接口,前者主要是用於播放音效,後者主要是用於播放背景音樂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章