javascript - Javascript:iOS/Safari 和其他浏览器的简单点击声音
问题描述
我有一个我想在点击时播放的声音。一切都运行良好,除了 Safari/iOS。在 iPhone 上,这种声音只播放一次(第一次)。为了解决这个问题,我.load()
之前添加了.play()
. 现在,当我单击所需区域时,iPhone 也有声音。
var sound_obj = document.createElement("audio");
sound_obj.src="../sounds/clic.mp3";
sound_obj.volume=0.10;
sound_obj.autoPlay=false;
sound_obj.loop = false;
sound_obj.preLoad=true;
sound_obj.type = 'audio/mpeg';
$(document).on("vclick", ".elementwithsound", function () {
sound_obj.load(); //this makes iOS to play the sounds but makes other browsers like firefox to throw errors sometimes
sound_obj.play();
});
但是现在在控制台上,我GET https://xxxxxxx.xx/sounds/clic.mp3
每次点击都有。另外,我有时会遇到以下错误sound_obj.load();
:
Uncaught (in promise) DOMException: The fetching process for the media resource was aborted by the user agent at the user's request.
有没有一种很好的方法可以为 iOS 和 Android 实现这种点击声音而不会造成这种混乱?
解决方案
推荐阅读
- nginx - rest api 直接与 nginx 代理
- typescript - tsconfig.json outDir 中的绝对路径(C:/)
- ios - 迅捷领域。如何将 300 万个对象放入数据库
- kubernetes - Kubernetes Ingress 路径重写
- python - 从嵌套字典到 DataFrame
- python - 如何根据给定要求自动拆分列表?
- android - msg:fragments 不支持数据绑定表达式(在标签中
) 数据绑定错误 - c++ - 打印实施在推回后立即失败(矢量)
- azure - 压力测试 Azure 应用服务会定期停止处理请求
- fortran - 无法使用链接 IRAF 库重定位 R_X86_64_32 的错误