我有 django 应用程序和一个视图,它检查一些数据,并将“play”变量传递给模板。如果 play 为 true - 应播放短 mp3“bing”,否则不会播放。 页面每 10 秒重新加载一次,调用视图,检查“播放”是否更改,并可能发出声音。 问题是,在第一页加载后,没有任何内容自动播放。 我需要单击 html 播放器上的播放按钮一次,然后一切正常。但如果没有第一个“手动操作”,它就无法工作。有什么想法吗? django模板代码如下
<html>
<head>
<script>
window.onload = function() {
var context = new AudioContext();
}
function autoRefresh() {
window.location = window.location.href;
}
setInterval('autoRefresh()', 10000);
</script>
</head>
<body>
{%if play%}
<audio autoplay controls id="music" >
<source src="{%static 'app1/stat1/d.mp3'%}" type="audio/mpeg">
</audio>
{%endif%}
</body>
</html>
并非所有浏览器都允许自动播放,或者至少不允许立即自动播放。 有关
autoplay
属性的文档[mdn-doc] 说:
自动播放可用性
作为一般规则,您可以假设媒体将被允许 仅当至少满足以下条件之一时才自动播放:
- 音频已静音或音量设置为0
- 用户已与网站进行交互(通过单击、点击、按键等)
- 如果该网站已被列入许可名单;如果浏览器确定用户参与,这可能会自动发生 经常使用媒体,或通过偏好或其他用户手动 界面特点
- 如果
权限策略 [mdn-doc] 用于向autoplay
及其文档授予自动播放支持。<iframe>
就您而言,第二个条件可能成立。因此,您应该查看浏览器为该网站授予了哪些权限。