javascript - 如何使用 HTML 和 Javascript 在循环中自动播放页面加载?
问题描述
我在 SO 上找到了很多关于自动播放、循环播放和加载播放的帮助。但是,似乎没有答案可以一起回答所有这些问题。
我尝试了 2 个解决方案: 解决方案#1 - HTML
<audio src="" id="music" loop muted></audio>
解决方案#1 - JS
window.addEventListerner('load',()=>{
document.querySelector('#music').src = music.data[rand].preview //I am setting this to a .mp3 file
document.getElementById("music").play()
document.getElementById('music').muted = false
}
该方案要求用户在播放 mp3 之前与 DOM 进行交互
现在,解决方案 #2是使用 iframe
<iframe loop="true" src="" allow="autoplay" id="music" style="display:none"></iframe>
解决方案#2 JS 看起来像:
window.addEventListerner('load',()=>{
document.querySelector('#music').src = music.data[rand].preview //I am setting this to a .mp3 file
}
此解决方案会自动播放 .mp3 文件,但不会循环播放。
有人可以提供一个在加载时自动播放并循环播放的解决方案。我只使用 .mp3。没有视频。谢谢!
解决方案
我得到了解决方案:使用视频标签并将其作为 mp3 播放。它有点hacky
<video type="audio/mpeg" src="" allow="autoplay" id="music" style="display:none" loop autoplay></video>
在 JS 文件中执行
Inside any of your event listener
document.querySelector('#music').play()
这将在页面加载时自动播放并保持循环。
推荐阅读
- angular - 如何从 JSON 文件中获取数据并显示在网页上
- c# - 除非更改文件扩展名,否则 File.Delete 上的 UnauthorizedAccessException
- python - ValueError:无法为具有形状“(?,2)”的张量“Placeholder:0”提供形状(2、1000、1)的值
- functional-programming - KDB+ 应用条件然后更新表中的多个列
- laravel - VueJS - 方法内的动态函数名称
- shell - 如何找到 IMAP 服务器上的每个非空垃圾文件夹?
- openflow - 多个 IP 地址源的 ovs 流规则
- asynchronous - Kotlin 内部的延迟函数是如何工作的?
- python - Python:确保每个成对距离> =某个最小距离
- sql - 与 group by 合并