我使用下面的函数尝试按顺序播放声音(音符(的数组(a、b、c都是预先初始化的声音实例((a播放并结束,然后b播放并结束等(。然而,它不是一个接一个地播放每个声音,而是一次性播放所有声音。如何修改此代码以按顺序播放声音?
const playSound = () =>{
const notes = [a,b,c,a]
notes.forEach(element => {element.setVolume(1).play()});
}
notes.forEach(element=>{element.setVolume(1(.play((}(;
这将同时播放所有内容,您不能执行此
为了处理这个问题,你需要一个自定义的类或函数来处理和播放下一个音频
例如:
const MusicHandler = () => {
var musicQueue = [1,2,3,4,5,6,7]
//play current song
const playAudio = () => {
const currentToBePLayed = musicQueue[0];
if(currentToBePLayed){
currentToBePLayed.setVolume(1).play()
}
}
// remove the first element and then again play song
const onplaybackComplete = () => {
musicQueue.shift()
playAudio()
}
}
这里你需要添加处理程序,如果一个音频完成,然后播放另一个,