HarmonyOS 鸿蒙Next:再发一遍,SoundPool 一次能载入多少个音频文件?

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:再发一遍,SoundPool 一次能载入多少个音频文件?

soundstr数组里面有80个音频文件,没个文件大小不超过10kb,循环载入音频文件,每次载入到32个左右就报错了
错误:soundPool load failed and catch error is load sound failed=============5400102
首先音频测试没有问题,是不能这样载入吗,还是数量有限制,如果载入量多的音频怎么载入,以前做android就是一次性初始化音频
求助求助求助求助
soundPool = await  media.createSoundPool(soundstr.length, audioRendererInfo);
for(let i=0;i<soundstr.length;i++){
console.info(‘soundPool soundstr=======i===================’+i+"=============")
try {
context.resourceManager.getRawFd(soundstr[i], (error: BusinessError, value: resourceManager.RawFileDescriptor) => {
if (error != null) {
console.error(callback getRawFd failed error code: ${error.code}, message: ${error.message}.);
} else {
let fd = value.fd;
let offset = value.offset;
let length = value.length;
uri = ‘fd://’ + fd.toString();
soundPool.load(fd, offset, length).then((soundId: number) => {

      console.info('soundPool load uri success==='+soundId+"soundstr[i]="+soundstr[i]);
      soundMap.set(soundstr[i],soundId);


    }).catch((err: BusinessError) =&gt; {

      console.error('soundPool load failed and catch error is ' + err.message+"============="+err.code);

    })
  }
});

} catch (error) { let code = (error as BusinessError).code; let message = (error as BusinessError).message; console.error(callback getRawFd failed, error code: ${code}, message: ${message}.); } }



关于HarmonyOS 鸿蒙Next:再发一遍,SoundPool 一次能载入多少个音频文件?的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

4 回复

官方api有介绍,创建SoundPool实例时,需要明确最大播放流数量。

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-soundpool-for-playback-V5

cke_307.png

希望HarmonyOS能加强与其他品牌设备的兼容性,让更多人受益。

已经明确了soundstr.length,数组值是80,然后载入音频,载入到30多个以后后面的音频就载入出错了,现在有需求时需要这些音效

抱歉,没太细看你的问题,建议在issue上提个单:https://issuereporter.developer.huawei.com/new-issue/add

回到顶部