creator 3.x audiosource API 又改了

真受不了creator,每次都要改改api才能显得你们牛逼?好好的音效api又改了,
以前的pause后有个resume的方法恢复音效播放,那么我想问现在呢,audiosource找不到这个resume,难道直接调用play吗???

import { _decorator, Component, Node, AudioSource, clamp01, AudioClip } from 'cc';
import { ComponentBase } from './ComponentBase';
const { ccclass, property } = _decorator;

@ccclass('AudioManager')
export class AudioManager extends ComponentBase {

    public static instance: AudioManager = new AudioManager()

    private musicAudioSource: AudioSource
    private soundAudioAource: AudioSource;

    onLoad() {
        this.musicAudioSource = this.node.getChildByName("music").getComponent(AudioSource)
        this.soundAudioAource = this.node.getChildByName("sound").getComponent(AudioSource)
    }

    /**
       * 播放音乐
       * @param {Boolean} loop 是否循环播放
       */
    public playMusic(audioClip: AudioClip, loop: boolean) {
        this.musicAudioSource.clip = audioClip;
        this.musicAudioSource.loop = loop;
        if (!this.musicAudioSource.playing) {
            this.musicAudioSource.play();
        }
    }

    public stopMusic() {
        this.musicAudioSource.stop()
    }

    public pauseMusic() {
        this.musicAudioSource.pause()
    }


    /**
   * 播放音效
   * @param {String} name 音效名称
   * @param {Number} volumeScale 播放音量倍数
   */
    public playSound(audioClip: AudioClip, volumeScale: number = 1) {
        // 注意:第二个参数 “volumeScale” 是指播放音量的倍数,最终播放的音量为 “audioSource.volume * volumeScale”
        this.soundAudioAource.playOneShot(audioClip, volumeScale);
    }

    // 设置音乐音量
    public setMusicVolume(flag: number) {
        flag = clamp01(flag);
        this.musicAudioSource.volume = flag;
    }

    public setSoundVolume(flag: number) {
        flag = clamp01(flag);
        this.soundAudioAource.volume = flag;
    }

}

顺便贴贴封装的新音效管理类,
之前的audioengine挺好用的,硬生生被你们弄没了,过分

改了api能提升效率

抱歉 ,audioSource.resume 是 2.x 的接口设计,3.x 这里确实是有 breaking change 的,这个不是 3.6.0 引入的
已经将 resume 合并到 play 操作里了,可以直接调用 play

那被暂停后如果想重新播放。。。这代码写的不就很尴尬了吗

:rofl: :rofl: :rofl:

遇到这个问题了,我现在强行写成先stop/play,resume就pause/play