顺序播放音频使用的是递归函数:
// 需要顺序播放音频的位置
let arr = res.data.response.arr, //需要播放的音频地址数组
currentIndex = 0;
if(arr.length>0){
this.play(arr, currentIndex); //调用递归函数
}else{
console.log('暂无语音提醒!');
}
// 播放音频的递归函数:
play(arr, currentIndex){
let InnerAudioContext = wx.createInnerAudioContext()
InnerAudioContext.src = arr[currentIndex];
InnerAudioContext.play();
InnerAudioContext.onEnded((res) => {
if(currentIndex < arr.length){
this.play(arr, currentIndex+1);
}
})
}
同步播放多个音频使用的是for循环:
let arr = res.data.response.arr; //需要播放的音频地址数组
if(arr.length>0){
for(let i of arr){
let InnerAudioContext = wx.createInnerAudioContext()
InnerAudioContext.src = i;
InnerAudioContext.play();
}
}else{
console.log('暂无语音提醒!');
}
使用 AudioBufferSourceNode 连续播放多个音频片段可能会出现杂音问题,这个是怎么解决的呢。
感谢分享~!按这个方式终于可以了~
同步播放多个音频,安卓和开发者工具测试没问题,iOS真机下测试只播放最后一个音频。。。
使用递归的方式那要怎么暂停播放0.0