0
我正在嘗試用一些jQuery來編寫一些JavaScript代碼,它將播放隨機聲音文件(從數組中選擇)通過設置隨機的時間間隔來播放聲音。到目前爲止,我已經獲得了隨機歌曲選擇器的工作。但是,playMusic函數中的遞歸似乎存在問題。只有兩首歌曲會連續播放,然後在歌曲之間停止播放。Javascript函數延遲後自動播放隨機HTML音頻
這裏是我的代碼:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var randInterval = 0;
var songList = ["song1","song2","song3","song4","song5"];
var songHTML;
function getRandomSong(){
var randSong = songList[Math.floor(Math.random()*songList.length)];
songHTML = "<source src='music/" + randSong + ".mp3'>" +
"<source src='music/" + randSong + ".ogg'>";
return songHTML;
}
function setRandomInterval(){
randInterval = Math.floor((Math.random()*60)+60);
return randInterval;
}
function playMusic(){
var delayTime = setRandomInterval();
$(document).ready(function(){
$('#myAudio').html(getRandomSong());
$('#myAudio').prop("volume", 0.05);
$('#myAudio').get(0).play();
});
$('#myAudio').on('ended', function(){
$('#myAudio').delay(delayTime).queue(function(){
return playMusic();
});
});
}
</script>
</head>
<body onload="playMusic()">
<div>
<audio controls id="myAudio" autoplay>
</audio>
</div>
</body>
</html>
['.delay()'](https://api.jquery.com/delay/)以毫秒爲單位延遲。 – Musa
謝謝,這解決了延遲問題。但是,我仍然遇到函數遞歸的問題。我希望它能夠連續播放歌曲,延遲,播放歌曲,延遲等。 – SolarisRa
嘗試將事件綁定在playMusic函數之外 – Musa