我试图让我的程序在不同的持续时间播放音频列表。从音频列表元素4开始,持续时间将取决于用户的选择,并且播放第一轮的范围为4到8的每个元素。 (所以第一轮,节目将播放元素4,5,...,8)。如何将用户的选择设置到我的数组中并随机选择元素
另一个问题是随机选择元素4到8从音频列表中播放,但持续时间将是相同的来自用户的选择。
我的想法是使用if语句对i = 4,并执行for循环。如果我不使用循环,我可以存储用户输入并将其设置为元素的持续时间。但考虑到我需要从元素4播放音频到8,所以我认为我应该使用循环,但是如果我使用循环,我不能将用户输入存储到我的数组中。为什么是这样?以及如何随机制作代码以从元素4到元素8中选择数组列表。
感谢您的帮助。我很感激。
<select id="numFollowUp" name="numFollowUp" style=display:none>
<option value="">Number of follow-up questions</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
<select id="secFollowUp" name="secFollowUp" style=display:none>
<option value="">Second between each question</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
</select>
var intro_playList = [{
"duration": 1000,
"key": "0_silence"
}, {
"duration": 500,
"key": "1_hello"
}, {
"duration": 1000,
"key": "2_how_old"
}, {
"duration": 1000,
"key": "3_what_did_you_make"
}, {
// story_playlist
"duration": 1000,
//"duration": document.getElementById("secFollowUp").value * 1000,
"key": "4_tell_me_a_story"
}, {
"duration": 1000,
//"duration": document.getElementById("secFollowUp").value * 1000,
"key": "5_and_then_what"
}, {
"duration": 1000,
"key": "6_why"
}, {
"duration": 1000,
"key": "7_tell_me_more"
}, {
"duration": 1000,
"key": "8_what_happened_next"
}];
$(document).ready(function() {
var audioElement = document.createElement('audio');
audioElement.addEventListener("ended", playAudio);
var i = 0;
$("#play").on("click", playAudio);
function playAudio() {
console.log(i);
var audioIndex = intro_playList[i++];
console.log(audioIndex);
console.log("After " + audioIndex.duration + " seconds play next audio");
audioElement.src = "sound/" + audioIndex.key + ".wav";
audioElement.load();
setTimeout(function() { audioElement.play()}, audioIndex.duration);
if(i === 4){
while(i === 4)
{
intro_playList[i].duration = document.getElementById("secFollowUp").value * 1000
audioElement.src = "sound/" + audioIndex.key + ".wav";
audioElement.load();
setTimeout(function(){ audioElement.play()}, audioIndex.duration);
i++;
if(i === 8) break;
}
}
});
不能肯定什么要求? – guest271314