javascript - 如何在没有用户交互的情况下下载和播放音频剪辑?
问题描述
有没有办法在用户与页面交互之前以编程方式开始音频播放?
使用以下 JavaScript:
console.log('Playing abc.');
XYZ.abc = new Audio('audio/abc.wav');
XYZ.abc.play();
我收到一条错误消息,
Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。
当我点击页面时,它就消失了。
是标准的 UI 模式要求用户单击以开始声音,还是以编程方式执行此操作存在漏洞?
谢谢,
解决方案
那么问题是用户通常不希望音频来自网站,因此 chrome 要求您的音频或视频元素默认静音。对于<audio>
标签,需要添加 muted 属性,所以 -><audio muted>
js 元素将分别具有 .muted 属性。所以,你需要的是XYZ.abc.muted = true;
推荐阅读
- firebase - Firebase 查询会收取额外的读取费用吗?
- bootstrap-4 - 如何在 Bootstrap 中使固定内容可滚动
- python - 如何在python中将列表转换为csv文件
- flutter - Flutter将带有数组子对象和对象的json转换为类映射
- c# - NotifyCollectionChangedEventArgs:添加的项目未出现在给定索引处(在删除期间)
- xcode - 如何在可执行文件附近生成 dsym 文件,而不是在捆绑包之外,最好没有安装后脚本?
- android - 在 Android Studio 中找不到 Sync with Gradle 按钮
- c# - 如何将C#中两个标签的数量相乘
- scala - scala/spark - 对数据框进行分组并从其他列中选择值作为数据框
- python - 如何将最后一列(1d 数组)附加到 python 中的 2d numpy 数组?