Javascript 音频元素工作模式中的自动播放属性

Javascript 音频元素工作模式中的自动播放属性,javascript,html,html5-audio,Javascript,Html,Html5 Audio,我尝试向播放器添加自动播放功能,如w3school示例中所示: 我所做的是将示例中的代码复制粘贴到索引文件中,删除ogg播放器,在索引文件所在的位置添加mp3文件,并确保mp3文件的名称与源标记中的名称匹配 为了透明起见,以下是代码: let x=document.getElementById(“myAudio”); var test_autoplay=document.getElementById(“myAudio”).autoplay; console.log('autoplay:',te

我尝试向播放器添加自动播放功能,如w3school示例中所示:

我所做的是将示例中的代码复制粘贴到索引文件中,删除ogg播放器,在索引文件所在的位置添加mp3文件,并确保mp3文件的名称与源标记中的名称匹配

为了透明起见,以下是代码:

let x=document.getElementById(“myAudio”);
var test_autoplay=document.getElementById(“myAudio”).autoplay;
console.log('autoplay:',test_autoplay)

音频自动播放属性
单击播放按钮播放声音:

您的浏览器不支持音频元素。
这是一个棘手的问题。我能重现你所看到的,但我想我已经明白了

如果您允许网站播放音乐超过7秒,它将允许自动播放以下访问。如果在7秒之前停止播放、关闭或重新加载选项卡,则站点将失去自动播放功能,直到您再次播放音频超过7秒为止

铬自动播放 这种行为是特定于Chrome的(您提到您正在使用的)。Chrome记录了用户允许播放音频的站点。它将其存储在媒体参与度索引中。您可以通过键入
chrome://media-engagement/
进入地址栏。如果你允许你的站点播放音频超过7秒,你应该看到上面列出的内容。有关Chrome在自动播放方面的行为的更多信息,请参阅。媒体参与度指数为,但由于Chrome的更改,部分文档不再是最新的

Javascript检查自动播放权限 此外,下面复制的javascript代码片段似乎正在尝试检查是否启用了
autoplay

document.getElementById("myAudio").autoplay
事实上,这只是检查HTML标记上是否设置了
autoplay
属性,它总是这样

要测试是否允许自动播放,请使用以下代码段:

document
  .getElementById('myAudio')
  .play()
  .then(() => console.log('autoplay success!'))
  .catch(e => console.log(e))
相关信息
描述了一种“欺骗”Chrome使其始终自动播放的方法,尽管我个人并没有对此进行过测试

请参阅此处解决自动播放限制的方法,仅放置
autoplay
prop不应依赖于work@Lawrence切罗尼,我确实读过这篇文章。它说,要使autoplay工作,至少应满足以下要求之一(静音音频、用户交互、用户行为等)。然而,在我的例子中,自动播放不完全工作或不工作。比如说,在两分钟的时间范围内,有时有效,有时无效。这就是它应该如何工作的吗?嗨,Evi,你能添加一个OS/浏览器表(包括版本,如果可能的话),它在哪里工作,在哪里不工作吗?可能有助于本地复制。哦,你如何评估音频没有播放?(我假设您查看浏览器的音频播放器UI)。是否通过网络选项卡加载?(也许通过手机很难说——其中一些可以通过笔记本电脑调试)。@Ryuno Ki也许我没有澄清这一点,但我是说,从同一台机器、同一个浏览器重新加载页面,而不修改代码,会产生随机结果。它可能在几次重新加载后都无法播放,然后突然自动播放。我不知道为什么会这样,因为我希望至少有一个一致的行为。我可以判断音频没有在桌面上播放(让我们暂时忘记移动设备),因为我听不到任何音频,而且选项卡中的播放符号没有显示。