Javascript 如何在JS中随机单独播放音频文件
我创建了一个小的Kanye West Quote生成器,除了获取随机Kanye Quote的按钮外,我还加入了一些音频文件来播放(只有三个Kanye说话的音频片段) 我想做的是:当点击按钮显示新的报价时,应该会播放一段音频(来自3)。目前,我有它将播放,但所有3个音频文件一次播放或两次播放,其中一个单独播放在下一次点击 以下是我的音频代码:Javascript 如何在JS中随机单独播放音频文件,javascript,dom-events,html5-audio,Javascript,Dom Events,Html5 Audio,我创建了一个小的Kanye West Quote生成器,除了获取随机Kanye Quote的按钮外,我还加入了一些音频文件来播放(只有三个Kanye说话的音频片段) 我想做的是:当点击按钮显示新的报价时,应该会播放一段音频(来自3)。目前,我有它将播放,但所有3个音频文件一次播放或两次播放,其中一个单独播放在下一次点击 以下是我的音频代码: const kanyeBush = document.getElementById('bush'); const kanyeOpinion = docume
const kanyeBush = document.getElementById('bush');
const kanyeOpinion = document.getElementById('opinion');
const kanyeRobot = document.getElementById('robot');
let kanyeQuoteArray = [kanyeBush, kanyeOpinion, kanyeRobot];
const kanyeSounds = () => {
let kanyeSoundbite = kanyeQuoteArray.forEach( sound => {
sound.play();
});
let audio = new Audio(kanyeSoundbite);
audio.play();
}
然后,我在获取代码中运行了以下命令:
const kanyeQuote = async () => {
const kanyeResponse = await fetch(kanyeApi);
const quoteJson = await kanyeResponse.json();
const randomQuote = document.createElement('h3');
quoteBox.innerHTML = "";
randomQuote.innerHTML = quoteJson.quote;
quoteBox.appendChild(randomQuote);
kanyeBtn.classList.toggle('hidden');
newQuoteBtn.classList.toggle('hidden');
kanyeSounds();
}
newQuoteBtn.addEventListener('click',kanyeQuote);
kanyeBtn.addEventListener('click', kanyeQuote)
有什么建议吗?您可以设置声音。在forEach中播放所有声音。。。所以他们一起玩。你必须指定一个你希望玩的游戏。例如,你可以使用随机索引
constkanyesounds=()=>{
设bitIndex=Math.floor((Math.random()*kanyequotaray.length))
让kanyeSoundbite=kanyeQuoteArray.forEach((声音,索引)=>{
sound.pause();//重置上一个
sound.currentTime=0;//重置位置
如果(索引===bitIndex)sound.play();
});
let audio=新音频(kanyeSoundbite);
音频播放();
}
我希望能为您提供一些有价值的东西,但不幸的是,我只有一句真诚的感谢。成功了。我不知道为什么我不能考虑在forEach中加入另一个参数(因为我对这个世界非常陌生)。再次感谢你!