cocos 3.8 播放音频的时候提示“Bundle resources doesn't contain voice/0016”

resources路径下存在voice路径
//调用
AudioMgr.inst.play(“voice/0016”, 1)

//音频管理类
//AudioMgr.ts

import { Node, AudioSource, AudioClip, resources, director } from ‘cc’;

/**

  • @en

  • this is a sington class for audio play, can be easily called from anywhere in you project.

  • @zh

  • 这是一个用于播放音频的单件类,可以很方便地在项目的任何地方调用。

*/

export class AudioMgr {

private static _inst: AudioMgr;

public static get inst(): AudioMgr {

    if (this._inst == null) {

        this._inst = new AudioMgr();

    }

    return this._inst;

}

private _audioSource: AudioSource;

constructor() {

    //@en create a node as audioMgr

    //@zh 创建一个节点作为 audioMgr

    let audioMgr = new Node();

    audioMgr.name = '__audioMgr__';

    //@en add to the scene.

    //@zh 添加节点到场景

    director.getScene().addChild(audioMgr);

    //@en make it as a persistent node, so it won't be destroied when scene change.

    //@zh 标记为常驻节点,这样场景切换的时候就不会被销毁了

    director.addPersistRootNode(audioMgr);

    //@en add AudioSource componrnt to play audios.

    //@zh 添加 AudioSource 组件,用于播放音频。

    this._audioSource = audioMgr.addComponent(AudioSource);

}

public get audioSource() {

    return this._audioSource;

}

/**

 * @en

 * play short audio, such as strikes,explosions

 * @zh

 * 播放短音频,比如 打击音效,爆炸音效等

 * @param sound clip or url for the audio

 * @param volume

 */

playOneShot(sound: AudioClip | string, volume: number = 1.0) {

    if (sound instanceof AudioClip) {

        this._audioSource.playOneShot(sound, volume);

    }

    else {

        resources.load(sound, (err, clip: AudioClip) => {

            if (err) {

                console.log(err);

            }

            else {

                this._audioSource.playOneShot(clip, volume);

            }

        });

    }

}

/**

 * @en

 * play long audio, such as the bg music

 * @zh

 * 播放长音频,比如 背景音乐

 * @param sound clip or url for the sound

 * @param volume

 */

play(sound: AudioClip | string, volume: number = 1.0) {

    if (sound instanceof AudioClip) {

        this._audioSource.stop();

        this._audioSource.clip = sound;

        this._audioSource.play();

        this.audioSource.volume = volume;

    }

    else {

        resources.load(sound, (err, clip: AudioClip) => {

            if (err) {

                console.log(err);

            }

            else {

                this._audioSource.stop();

                this._audioSource.clip = clip;

                this._audioSource.play();

                this.audioSource.volume = volume;

            }

        });

    }

}

/**

 * stop the audio play

 */

stop() {

    this._audioSource.stop();

}

/**

 * pause the audio play

 */

pause() {

    this._audioSource.pause();

}

/**

 * resume the audio play

 */

resume(){

    this._audioSource.play();

}

}

正确的用法是这样子的,你用错了吧。那个写法像是 2.x 的写法

附上 API

https://docs.cocos.com/creator/3.8/api/zh/class/AssetManager.Bundle?id=load

我是在官方文档上面直接拷贝下来的