gpt4 book ai didi

javascript - 如何根据用户选择的标签设置音频数组的持续时间

转载 作者:行者123 更新时间:2023-12-03 03:44:26 24 4
gpt4 key购买 nike

我试图让我的代码播放音频文件数组,但是当我的索引 i = 4 时,持续时间将取决于用户的选择标签。我厌倦了通过选择名称并乘以 100 来捕获用户的选项(因为它是毫秒)。我的程序显示它未定义。这是为什么?

在第一轮播放整个数组后,我的代码将重复播放数组播放列表元素 3 到 5 中的音频,但它是随机选择的。我想使用随机种子从 3 到 5 中选择元素。但这涉及数学。我应该如何处理这个问题?

谢谢你的帮助。我很感激

<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>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<br>
<br>
<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"
}, {
"duration": document.getElementById("secFollowUp").value * 1000,
"key": "4_tell_me_a_story"
}, {
"duration": document.getElementById("secFollowUp").value * 1000,
"key": "5_and_then_what"
}];

var i = 0;

$("#play").on("click", playAudio);

function playAudio() {
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){

audioElement.src = "sound/" + audioIndex.key + ".wav";
audioElement.load();
setTimeout(function(){ audioElement.play()}, select_value);

$("#numFollowUp").change(function(){
$(this).val() = repeat;
});
}
}

最佳答案

这是因为 document.getElementsByName("secFollowUp") 返回 NodeList 而不是特定元素。

因此,如果 secFollowUp 确实是输入元素的名称(并且您想使用 getElementsByName 方法访问它),则必须使用document.getElementsByName("secFollowUp")[0].value(注意 [0] 获取 NodeList 的第一个元素)

如果它是 input 元素的 id,则使用 document.getElementById('secFollowUp').value

更新
没有注意到您帖子中的实际 html,两种解决方案都可以工作,但第二种更好(使用 getElementById)

关于javascript - 如何根据用户选择的标签设置音频数组的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com