首页 > 解决方案 > 如何在没有用户交互的情况下下载和播放音频剪辑?

问题描述

有没有办法在用户与页面交互之前以编程方式开始音频播放?

使用以下 JavaScript:

console.log('Playing abc.');
XYZ.abc = new Audio('audio/abc.wav');
XYZ.abc.play();

我收到一条错误消息,

Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。

当我点击页面时,它就消失了。

是标准的 UI 模式要求用户单击以开始声音,还是以编程方式执行此操作存在漏洞?

谢谢,

标签: javascriptuser-interfaceaudiouser-interaction

解决方案


那么问题是用户通常不希望音频来自网站,因此 chrome 要求您的音频或视频元素默认静音。对于<audio>标签,需要添加 muted 属性,所以 -><audio muted>

js 元素将分别具有 .muted 属性。所以,你需要的是XYZ.abc.muted = true;


推荐阅读