应用场景为用户提问后,后台会返回一个包含音频的数组,前端通过onEnded方法的回调进行轮询播放,每段音频时长不超过5秒,播放完毕后才允许用户继续提问,试过两种方法。
- 第一是每个音频播放完毕后销毁innerAudioContext对象,下一个音频播放时再重新创建innerAudioContext对象。
- 第二是在页面创建完后创建一个innerAudioContext对象,每次播放时改变innerAudioContext的src再播放。但是两种方法都碰到过调用play方法后,在onPlay中有回调,但是没有声音,onError和onEnded方法的回调也不会触发,导致用户无法继续操作
不知道有没有人碰到类似的问题,偶发性bug,有时能一直正常播放,有时第二次播放就可能触发,也可能播了10-20段音频会触发。而且第二种方法有的时候只刷新页面也不能解决,只有关闭后重新打开才行
4 个回复
无情搬砖码农
同样的问题 这个问题解决了吗, 有时候连续创建和销毁音频示例 就会没声音也不报错,如果在创建别的音频实列还是可以播放的
5***@qq.com
同求,用的第二种方式,代码如下,偶发性的出现,调用该如下代码后没有声音了
if(vo.sound && vo.sound!=null){
vo.sound.pause();
vo.sound.seek(0);
}else {
vo.sound = uni.createInnerAudioContext();
vo.sound.sessionCategory = "ambient"
vo.sound.autoplay = true;
vo.sound.loop = true;
}
vo.sound.src = srcM;
vo.sound.play();
ITdavid
我也遇到同样的问题
Spring_CTH - Dcloud粉
同样的问题 唉 折腾好久了