html5-audio - 如何在 html 5 中一一播放多个音频文件?
问题描述
我想一个一个地播放多个音频文件。我读过同样的问题,但我发现原始答案的链接不起作用并且问题没有得到解答。
<audio id="mySound" controls><source src="http://www.hvalur.org/audio/uploaded_files/ds_umkomuleysi_0_0.mp3" type="audio/mpeg"></audio>
<audio id="mySound1" ><source src="http://www.hvalur.org/audio/uploaded_files/ds_ljosmyndavel_0_0.mp3" type="audio/mpeg"></audio>
我想要由用户操作(按下播放按钮)开始的第一个声音,然后一个一个播放以下声音。这个例子的用法将练习理解母语者阅读的电话号码。
解决方案
我会做这样的事情:
var mySound = document.getElementById("mySound");
var mySound1 = document.getElementById("mySound1");
var mySound2 = document.getElementById("mySound2");
var mySound3 = document.getElementById("mySound3");
var mySoundArray = [mySound, mySound1, mySound2, mySound3];
var mySoundArrayPos = 0;
var myButton = document.getElementById("myButton");
myButton.addEventListener("click", function(event) {
mySound.play();
mySoundArrayPos = 0;
startSoundTimer();
});
const startSoundTimer = () => {
var mySoundTimer = setInterval(() => {
if (mySoundArray[mySoundArrayPos].currentTime >= mySoundArray[mySoundArrayPos].duration) {
if (mySoundArrayPos < mySoundArray.length -1) {
mySoundArrayPos += 1;
mySoundArray[mySoundArrayPos].play();
} else {
clearInterval(mySoundTimer);
}
}
}, 10);
};
我不知道 10 毫秒是否有点太快,但我认为,这是合法的。
推荐阅读
- sql - 将 IN 子句的所有值添加到子选择列
- r - 如何创建 ppcor 函数的循环?
- python - 如何在保持目录结构的同时提取所有 .tar.gz 文件?
- javascript - Mongoose 在按明显存在的 _id 搜索时返回 Null
- c++ - Eigen 3.3.4:创建地图的方法是什么
到二维块? - google-cloud-platform - cloud-builds pub/sub 主题似乎未列出或无法访问
- unity3d - 从 Unity 上传的 Google Play 未更新
- python - 如何在单元格中将txt文件转换为csv文件
- python - 熊猫如何根据后面的行过滤前面的行
- c# - 错误 CS1703 在构建 Enterprise Bot Framework 项目时已导入具有相同标识的多个程序集