如何一键切换音频play/pause
How to toggle audio play/pause with one button
我以前从未真正使用过 javascript,但我尝试在谷歌上搜索如何为音频制作 play/pause 按钮的解决方案 - 我发现了一个看起来不错且简单的解决方案在这个网站上:
How to toggle audio play() pause() with one button or link?
(PS。我没有足够的声誉点数来评论 Iceman 的解决方案并直接问他可能出了什么问题 - 如果可以的话我会的。)
但是,当我将代码片段粘贴到我的文档中时,没有任何反应(生成的文本不可点击)。
你们中的一些人可以看看并告诉我我做错了什么吗?这很可能是愚蠢的,但我自己看不到。
Index.html 到目前为止:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Ukendt Navn ...</title>
<script>
var myAudio = document.getElementById("myAudio");
var isPlaying = false;
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
myAudio.play();
}
};
myAudio.onplaying = function() {
isPlaying = true;
};
myAudio.onpause = function() {
isPlaying = false;
};
</script>
<style type="text/css">
#content {
border: 1px solid blue;
margin: auto;
max-width: 20vw;
margin-top: 30vw;
color: black;
}
</style>
</head>
<body>
<div id="content">
<audio id="myAudio" src="birds.mp3" preload="auto"></audio>
<a onClick="togglePlay()">Click here to hear.</a>
</div>
</body>
</html>
您试图在加载元素之前调用 document.getElementById("myAudio")
,因此您可以在页面完全加载后调用它,或者将脚本放在 body
标记结束之前。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Ukendt Navn ...</title>
<script>
window.addEventListener('load', function(){
var myAudio = document.getElementById("myAudio");
myAudio.onplaying = function() {
isPlaying = true;
};
myAudio.onpause = function() {
isPlaying = false;
};
});
var isPlaying = false;
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
myAudio.play();
}
}
</script>
<style type="text/css">
#content {
border: 1px solid blue;
margin: auto;
max-width: 20vw;
margin-top: 30vw;
color: black;
}
</style>
</head>
<body>
<div id="content">
<audio id="myAudio" src="http://wyrdling.com/other/ukendtnavn/birds.mp3" preload="auto"></audio>
<a onClick="togglePlay()">Click here to hear.</a>
</div>
</body>
</html>
我以前从未真正使用过 javascript,但我尝试在谷歌上搜索如何为音频制作 play/pause 按钮的解决方案 - 我发现了一个看起来不错且简单的解决方案在这个网站上: How to toggle audio play() pause() with one button or link? (PS。我没有足够的声誉点数来评论 Iceman 的解决方案并直接问他可能出了什么问题 - 如果可以的话我会的。)
但是,当我将代码片段粘贴到我的文档中时,没有任何反应(生成的文本不可点击)。 你们中的一些人可以看看并告诉我我做错了什么吗?这很可能是愚蠢的,但我自己看不到。
Index.html 到目前为止:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Ukendt Navn ...</title>
<script>
var myAudio = document.getElementById("myAudio");
var isPlaying = false;
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
myAudio.play();
}
};
myAudio.onplaying = function() {
isPlaying = true;
};
myAudio.onpause = function() {
isPlaying = false;
};
</script>
<style type="text/css">
#content {
border: 1px solid blue;
margin: auto;
max-width: 20vw;
margin-top: 30vw;
color: black;
}
</style>
</head>
<body>
<div id="content">
<audio id="myAudio" src="birds.mp3" preload="auto"></audio>
<a onClick="togglePlay()">Click here to hear.</a>
</div>
</body>
</html>
您试图在加载元素之前调用 document.getElementById("myAudio")
,因此您可以在页面完全加载后调用它,或者将脚本放在 body
标记结束之前。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Ukendt Navn ...</title>
<script>
window.addEventListener('load', function(){
var myAudio = document.getElementById("myAudio");
myAudio.onplaying = function() {
isPlaying = true;
};
myAudio.onpause = function() {
isPlaying = false;
};
});
var isPlaying = false;
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
myAudio.play();
}
}
</script>
<style type="text/css">
#content {
border: 1px solid blue;
margin: auto;
max-width: 20vw;
margin-top: 30vw;
color: black;
}
</style>
</head>
<body>
<div id="content">
<audio id="myAudio" src="http://wyrdling.com/other/ukendtnavn/birds.mp3" preload="auto"></audio>
<a onClick="togglePlay()">Click here to hear.</a>
</div>
</body>
</html>