audio或video标签的autoplay属性的说明

本文介绍了HTML中的<audio>和<video>标签的autoplay属性,探讨了其在网页背景音乐中的应用,并提供了代码示例。同时讨论了现代浏览器对autoplay功能的限制及如何解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

audio或video标签的autoplay属性的说明

<audio> 标签用于将声音内容嵌入文档中,例如音乐或其他音频流。

HTML audio 标签

<audio> - HTML(超文本标记语言) | MDN

<video> 标签用于将视频内容嵌入文档中,。你也可以将 <video> 标签用于音频内容,但是 <audio> 元素可能在用户体验上更合适。

HTML video 标签

<video>: 视频嵌入元素 - HTML(超文本标记语言) | MDN

想让内容自动播放的最简单方法是将autoplay属性添加到<audio>或<video>元素。但自动播放音频(或有声视频)可能会破坏用户体验,尽管自动播放媒体文件在某些情况下,如实现背景音乐时是一个很实用的功能,据新规则,可能需要在满足一定的条件才允许自动播放【可参见https://developer.mozilla.org/zh-CN/docs/Web/Media/Autoplay_guide】

chrome、safari、firefox、edge等浏览器都在某版本后限制了audio自动播放功能,必须要用户与当前页面有交互后,例如下面的例子设置了按钮,当用户点击后播放。

使用<audio> 标签实现网页背景音乐播放源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>背景音乐播放</title>
</head>
<body>
<audio id="aid" autoplay loop src="./horse.mp3" ></audio>
<button type="button" id="unmuteButton">Click Me!</button>
<script>
    unmuteButton.addEventListener('click', function() {
         var music = document.getElementById("aid");//获取ID
          if (music.paused) { //判读是否播放
                music.paused=false;
                music.play(); //没有就播放
          }
    });
</script>
</body>
</html>

上面源码也可以写为(提示,仅JS部分的不同):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>背景音乐播放 </title>
</head>
<body>
<audio id="aid" autoplay  loop src="./horse.mp3" ></audio>
<p>单击鼠标</p>
<script> 
    function SoundPlay() {
         var music = document.getElementById("aid");//获取ID
          if (music.paused) { //判读是否播放
                music.paused=false;
                music.play(); //没有就播放
          }
    }
    setInterval("SoundPlay()",1);
</script>
</body>
</html>

使用<video> 标签实现网页背景音乐播放源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>背景音乐播放</title>
</head>
<body>
<video id="vid" muted autoplay loop src="./horse.mp3" ></video>
<button type="button" id="unmuteButton">Click Me!</button>
<script>
    unmuteButton.addEventListener('click', function() {
        vid.muted = false;
    });
</script>
</body>
</html>

用户和页面之间有交互:其实就是指 用户与页面要发生了事件,才算有交互。比如 鼠标事件(单击 onclick,双击 ondblclick,按下 onmousedown,松开 onmouseup,右击 oncontextmenu 等),键盘事件(按下 onkeydown,松开 onkeyup 等)等。

既然是这样,那么在用户进入页面的时候,只要引导用户先去触发这些事件,背景音乐就能播放了,问题变相解决了,如上面的例子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值