javascript - 在js的循环中一个接一个地播放音频
问题描述
我还是 js 的新手,我尝试制作一个脚本,它会播放与内容相关的声音,当有一个积极的迹象时,音频会说积极,然后它会检查下一个字符,如果它再次是肯定的,它会第二次说是肯定的,如果是这样的话,它会说是否定的,依此类推。但由于某种原因,第一个音频只能工作一次,并且不会继续为 newText 上的每个字符播放声音。
var audioNegative = new Audio('/negative.mp3');
var audioPositive = new Audio('/positive.mp3');
var newText='+-+-+-++++--+-+';
document.getElementById("newText").innerHTML = newText;
for (var e = 0; e < newText.length; e++) {
if(newText[e]=='+')
{
audioPositive.play();
}
if(newText[e]=='-')
{
audioNegative.play();
}
}
解决方案
您可以使用setTimeout()
延迟播放音频。
var audioNegative = new Audio('/negative.mp3');
var audioPositive = new Audio('/positive.mp3');
var newText='+-+-+-++++--+-+';
document.getElementById("newText").innerHTML = newText;
for (var e = 0; e < newText.length; e++) {
if(newText[e]=='+')
{
//Replace 1000 with your audio's length in ms
setTimeout(() => audioPositive.play(), e * 1000);
}
if(newText[e]=='-')
{
//Replace 1000 with your audio's length in ms
setTimeout(() => audioNegative.play(), e * 1000);
}
}
推荐阅读
- integration-testing - Cypress 使用 preventDefault 提交表单
- machine-learning - 非参数监督学习方法
- python - 如何迭代熊猫中的行和多列?
- java - 如何使用jackson java将csv读取到嵌套的json
- ios - SwiftUI 视图未更新以反映 UIViewController 中的数据更改
- kubernetes - 无法使用 kubeconfig 文件中的上下文
- javascript - 反应后执行动作
- javascript - setTimeout - 有没有正确的方法来实现它?
- plsql - 寻找基于oracle apex layout design的plsql代码
- matlab - 如何在 Matlab 中使用黄油功能构建带通滤波器?