AudioSource mp3加载问题

使用audioSource 每次播放音乐都会去触发加载 不知道为什么 也提前加载过了
加载代码:
image
播放代码:
musicAudioSource.clip = await loadAsset(url, AudioClip);
/** 加载单个Asset */
loadAsset(url: string, assetType:): Promise {
return await new Promise((resolve) => {
let bundle: AssetManager.Bundle = this.getBundleByUrl(url);
let assetRes = bundle.get(url, assetType) as T;
if (assetRes && isValid(assetRes)) {
assetRes.addRef();
// 资源有了直接返回
resolve(assetRes);
return;
}
bundle.load(url, assetType, (error, asset: T) => {
if (error) {
} else {
asset.addRef();
}
resolve(asset);
});
});
}


这是直接在网页跑的
不知有无大佬遇到过 求助

反馈时请提供以下信息:

  • Creator 版本: 3.3
  • 目标平台: 网页
  • 重现方式:每次
  • 编辑器操作系统:window
  • 重现概率: 必现

:joy:求求

demo 弄个看一下。

testMusic.rar (1.2 MB)

3.3.0 劳烦 :pray:

image
我看代码是每次还会去加载一个player 但是player这个要怎么预加载呢?

3.3没看,但3.1就一直是一个AudioSource代表一个音频,想不加载就得保证复用,即使是同一个音频创建新的audiosource也无法避免请求一次304,对象池能解决这个问题。不过最后到结论是早点换howler吧 :sweat_smile:cocos这方面不大行

好的 多谢! :heartpulse:

howler是浏览器web用的,其他平台可能还要换其他引擎

请问有没有什么可以通用的办法呢?

我这边没有问题呀 3.3.0 只加载一次

啊?不会吧 您看看谷歌network里面呢 我这是每次都会发请求 :sob:

new出来的AudioSource然后play()会发请求,挂组件的play()就不会

可是demo上就是挂上去的 可是每次还是更换clip会请求player :sob:

嘶…换clip啊这个还没测到耶…之前做3.3的声音管理做了个Demo测试的…我想想哪个需求会有换clip…