gpt4 book ai didi

javascript - 在 JavaScript 中增加音频音量时的奇怪计数

转载 作者:行者123 更新时间:2023-12-01 15:38:25 25 4
gpt4 key购买 nike

我有一个 HTML 文件,用于使用 JavaScript 中的事件监听器测试播放/暂停和增加/减少音量。我无法准确描述我遇到的异常情况。我确定有一个合乎逻辑的解释,但我无法理解它。

基本上,向上和向下箭头键可以改变音频的音量。但是当我以某种模式按下按键时,比如 - 向上,向上,向下,向下,向上,向下,向上,向下 - 计数不遵循任何数学规则:D而不是增加音量,它会减少指定值,反之亦然。

我敢肯定,如果您正在回答这个问题,您知道该怎么做,但要测试它,只需更改 src 中的音频文件的名称并将相同的文件拖放到项目中。然后只需在您选择的浏览器中本地加载 HTML 并调试它。将显示当前音量。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Audio API</title>
</head>
<body>
<audio>
<source src="njaar.mp3" type="audio/mpeg">
</audio>

<p id="currentVolume"></p>

<script>
var audio;
window.addEventListener('load', init, false);
window.addEventListener("click", playPause, false);
window.addEventListener("keydown", changeVolume, false);
function init() {
audio = document.getElementsByTagName('audio')[0];
audio.play();
}
function playPause() {
if (audio.paused) {
audio.play();
} else {
audio.pause();
}
}
function changeVolume() {
document.getElementById("currentVolume").innerHTML = audio.volume;
// if (audio.volume === 1) {
// document.getElementById("currentVolume").innerHTML = audio.volume;
// }
if (event.key === "ArrowUp") {
try {
audio.volume = audio.volume + 0.05;
} catch (e) {
console.error("Exception: " + e + "has been caught!");
}
}
if (event.key === "ArrowDown") {
try {
audio.volume = audio.volume - 0.05;
} catch (e) {
console.error("Exception: " + e + "has been caught!");
}
}
if (audio.volume < 0.05) {
audio.volume = 0;
}
}
</script>
</body>
</html>

最佳答案

我觉得是关于

的位置
document.getElementById("currentVolume").innerHTML = audio.volume;

您在函数的开头调用它。这样您就可以显示上次更新而不是当前更新。

放在函数的末尾。

提示:

  • 添加事件作为参数
  • 考虑使用 +=-=

关于javascript - 在 JavaScript 中增加音频音量时的奇怪计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61844463/

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