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 这两个接口,前者主要是用于播放音效,后者主要是用于播放背景音乐。

发布了47 篇原创文章 · 获赞 50 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_45021180/article/details/104728832