我正在創建一個音板,當單擊一個按鈕時它會播放隨機聲音。我試圖通過在獲取所有mp3文件鏈接(文件名)的for循環中創建數組來完成此操作,並且當用戶單擊按鈕時使用(Math.floor(Math.random))更改文件名稱。從for循環獲取隨機值(角度2)
我遇到的問題是,它只是發揮相同的聲音。它不會播放隨機聲音。
soundboard.ts
/* Loop through them, saving their title and sound file */
for(let link of links) {
let filename = link.getAttribute("href")
let rand = [filename];
this.sounds.push({
file: filename,
rand: rand
});
}
/* Plays the sound */
play(sound) {
sound.rand = sound.file[Math.floor(Math.random() * sound.file.length)];
console.log(sound.rand)
this.media = new Audio(sound.rand);
this.media.load();
this.media.play();
}
您的代碼很難閱讀。你在錯誤的地方有類型。 'let rand:any = [filename];'是_terrible_代碼。另一方面,'play(sound){'實際上可以使用類型註釋.... –
無論如何,你是不是指'const randomSound = sounds [Math.floor(Math.random()* sound.file。 ''this.media = new Audio(randomSound);'爲什麼'rand'初始化爲一個元素的數組? –