【发布时间】:2021-06-14 10:14:21
【问题描述】:
我正在尝试创建一个 HTML 页面,其中包含点击播放声音的图像。每张图片的第一次点击效果很好,但随后的点击并不总是有效;他们似乎又需要一些耐火的加载时间?
我有三个音频文件:“two.mp3”、“five.mp3”和“one.mp3”。我还有三个不同颜色的圆形图像,音频文件被分配到。我的代码基于 Stack Overflow 答案here。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="stylesheet.css">
<script src= "drag.js"></script>
</head>
<img id="a" src="jspsych/img/blue.png" class="dragme" data-state="play"/>
<audio id = "two" src="jspsych/audio/five.mp3" preload>
Your browser does not support the <code>audio</code> tag
</audio>
<img id="b" src="jspsych/img/orange.png" class="dragme" data-state="play"/>
<audio id = "five" src="jspsych/audio/two.mp3" preload>
Your browser does not support the <code>audio</code> tag
</audio>
<img id="c" src="jspsych/img/black.png" class="dragme" data-state="play"/>
<audio id = "one" src="jspsych/audio/one.mp3" preload>
Your browser does not support the <code>audio</code> tag
</audio>
<script language="javascript" type="text/javascript">
document.getElementById("a").addEventListener("click", function(e){
var state = e.currentTarget.dataset.state;
if (state == "play") {
document.querySelector("audio").play();
e.currentTarget.dataset.state = "pause";
}
else {
document.querySelector("audio").pause();
e.currentTarget.dataset.state = "play";
}
});
document.getElementById("b").addEventListener("click", function(e){
var state = e.currentTarget.dataset.state;
if (state == "play") {
document.getElementById("five").play();
e.currentTarget.dataset.state = "pause";
}
else {
document.getElementById("five").pause();
e.currentTarget.dataset.state = "play";
}
});
document.getElementById("c").addEventListener("click", function(e){
var state = e.currentTarget.dataset.state;
if (state == "play") {
document.getElementById("one").play();
e.currentTarget.dataset.state = "pause";
}
else {
document.getElementById("one").pause();
e.currentTarget.dataset.state = "play";
}
});
</script>
</html>
可能有人有一些改进的想法吗?
【问题讨论】:
-
加载需要时间吗??
标签: javascript html audio