我正在创建一个音板,当单击一个按钮时它会播放随机声音。我试图通过在获取所有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'初始化为一个元素的数组? –