【发布时间】:2018-08-17 09:50:19
【问题描述】:
我正在尝试显示图像,播放随机声音并在随机时间显示随机名称。一切正常,但声音。它有时只播放..我不知道如何修复它 - 也许是另一种播放某种声音的方式。有什么建议吗?
document.getElementById('myimage').style.display = 'none';
var mytime = new Array("12000", "22000");
var randomtime = mytime[Math.floor(Math.random() * mytime.length)];
window.setInterval(function(){
/// call your function here
//WORKS
document.getElementById('myimage').style.display = 'block';
var myarray = new Array("Camilla", "Charlotte", "Beata", "Katrine", "Peppe", "Vorre", "Rene", "Schmidt", "Søholm", "Uffe", "Kromann");
var random = myarray[Math.floor(Math.random() * myarray.length)];
document.getElementById("message").innerHTML=random;
var collection=[];// final collection of sounds to play
var loadedIndex=0;// horrible way of forcing a load of audio sounds
function init(audios) {
for(var i=0;i<audios.length;i++) {
var audio = new Audio(audios[i]);
collection.push(audio);
buffer(audio);
}
}
function buffer(audio) {
if(audio.readyState==4)
return loaded();
setTimeout(function(){buffer(audio)},100);
}
function loaded() {
loadedIndex++;
if(collection.length==loadedIndex)
playLooped();
}
function playLooped() {
var audio=Math.floor(Math.random() * (collection.length));
audio=collection[audio];
audio.play();
}
window.setTimeout(function(){
document.getElementById("message").innerHTML="THE-CAMEL-YELLING-DRINKING-GAME";
document.getElementById('myimage').style.display = 'none';
}, 10000);
init([
'sound/camel1.mp3',
'sound/camel2.mp3',
'sound/camel3.mp3'
]);
},randomtime);
<img id="myimage" src="dist/images/giphy.gif" width="420" height="236" />
<h1 id="message">THE-CAMEL-YELLING-DRINKING-GAME</h1>
【问题讨论】:
-
检查浏览器控制台是否有未处理的承诺拒绝。另外,写代码的时候可以考虑使用缩进,不然会比较难读。
-
@CertainPerformance HTML 添加并且控制台中没有错误
-
我不知道“骆驼大喊大叫喝酒游戏”是什么,但我很兴奋。
标签: javascript audio random mp3 setinterval