javascript - 固定尝试暂停/播放 HTML 中的 MP3 文件

标签 javascript html button audio

希望有两个按钮,一个用于“暂停”,一个用于“播放”MP3 音频文件。按钮显示但不暂停/播放音频,以及音频不播放任何内容。这是我正在使用的代码。谢谢。

HTML

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Loadingscreen</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="script.js"></script>
</head>
<body>
    <audio controls id="song">
        <source src="audio/music.mp3" type="audio/mpeg">
    </audio>
    <button onclick="playAudio()" type="button">Play</button>
    <button onclick="pauseAudio()" type="button">Pause</button>
    <div class="slides slowFade">
        <div class="slide">
            <img src="img/image1.jpg" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image2.jpg" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image3.png" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image4.jpg" alt="img"/ height="100%" width="100px">
        </div>
    </div>
</body>
</html>

JavaScript

var x = document.getElementById("song"); 

function playAudio() { 
  x.play(); 
} 

function pauseAudio() { 
  x.pause(); 
}

最佳答案

你必须在加载文档后加载你的js文件。

您应该将脚本放在 HTML 文件的末尾。您使用 var x = document.getElementById("song"); 获取 DOM 元素,但该元素尚未加载,因为您的脚本位于页面顶部,因此您可以这样更改代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Loadingscreen</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    
</head>
<body>
    <audio controls id="song">
        <source src="audio/music.mp3" type="audio/mpeg">
    </audio>
    <button onclick="playAudio()" type="button">Play</button>
    <button onclick="pauseAudio()" type="button">Pause</button>
    <div class="slides slowFade">
        <div class="slide">
            <img src="img/image1.jpg" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image2.jpg" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image3.png" alt="img"/ height="100%" width="100px">
        </div>
        <div class="slide">
            <img src="img/image4.jpg" alt="img"/ height="100%" width="100px">
        </div>
    </div>
    <!-- the DOM will be available here -->
    <script src="script.js"></script>
</body>
</html>

最好在文件末尾加载 JS 文件,这样用户可以更快地查看 HTML。

如果出于任何原因您无法在页面末尾加载 js 文件,您可以这样更改您的 JS 文件:

function playAudio() { 
const x = document.getElementById("song"); 
  x.play(); 
} 

function pauseAudio() { 
const x = document.getElementById("song"); 
  x.pause(); 
}

关于javascript - 固定尝试暂停/播放 HTML 中的 MP3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71416299/

相关文章:

javascript - 无法将我的 html 文档连接到 jquery

javascript - 第一次点击后 href 不运行,但 onclick 运行

javascript - 当目光移开时刷新 iframe(从 iframe 本身内部)

javascript - 触发对具有相同类的多个元素的点击

javascript - Angular 2+ Router是否卸载之前懒加载的模块

javascript - Canvas 尺寸已关闭

javascript - 如何在 jQuery 对话框中拉伸(stretch) div 和输入元素?

css - 单击事件更改 GridView 自定义按钮文本和 Css

html - <a> 与 <button> 中的垂直文本居中

html - 如何使我的 HTML 表单按钮在移动和桌面浏览器中看起来相同?