使用react原生声音按顺序播放一系列声音



我使用下面的函数尝试按顺序播放声音(音符(的数组(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()
}

}

这里你需要添加处理程序,如果一个音频完成,然后播放另一个,

最新更新