cc.audioEngine.play的参数问题

在官方文档中,看到音频播放部分有如下代码
this.current = cc.audioEngine.play(this.audio, false, 1);

在这里,this.audio作为一个cc.AudioClip组件被手动绑定到了脚本里,然后我去翻看了audioEngine的API,在API说明里是这样描述的

play ( filePath loop volume ) Number

filePath String The path of the audio file without filename extension.
loop Boolean Whether the music loop or not.
volume Number Volume size.

这是play的方法说明,因为我不想把资源和组件绑死,我看到上面的API描述,想到是否可以传入路径,让audioEngine来播放音乐,这样我就能更灵活的切换音乐,甚至可以吧音乐做成一个列表,随时修改列表配置就可以增加减少音乐而不用去手动绑定,但这里就遇到一个问题,这个path,是应该怎么样的,比如我的音乐放在resources下audio中,假如路径如下:resources/audio/music.mp3,那么把这个路径传进去实际上是播放不了,那么正确的路径应该是怎么样,还是说API本身描述有错误,不支持path?

补充一下,我找到了源代码,确实看到了方法的定义
int AudioEngine::play2d(const std::string& filePath, bool loop, float volume, const AudioProfile *profile)

然后打了断点,跟了一下,发现其路径是这样的
res/raw-assets/resources/audio
也就是说,如果我要指定路径,那么至少应该是res/raw-assets打头的,这样理解对吗?既然这里是指定path,为什么会出现这么奇怪的指定呢?为什么不是类似于"resources/xxxx"打头的,必须要指定res/raw-assets/吗?我也试过传resources开头的,但是源码中FileUtils::getInstance()->isFileExist(filePath)就找不到

最后怎么解决的?能否告知一下

cc.audioEngine.play(cc.url.raw(resources/audio/music.mp3, true, 1);

先文档看一遍

1赞

是不是该有个
cc.audioEngine.playRes(‘audio/music.mp3’);