https://blog.csdn.net/PY0312/article/details/90349386

由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播放音频视频,默认屏蔽了autoplay,如果要想达到自动播放效果,需要单独处理,方法有以下几种:

第一种:添加控制属性(controls)
原理:直接使用行内式添加controls属性,显示控制按钮,让用户手动触发音频播放
<audio autoplay="autopaly" loop="loop" controls="controls" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>
第二种:创建页面监听(WeixinJSBridgeReady)
原理:对页面加载进行监听,等待微信客户端页面加载完毕后,自动触发音频播放 
<audio autoplay="autopaly" loop="loop" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>

<script>
// 将以下代码添加到js入口函数内即可
// 这里使用了微信自带的WeixinJSBridgeReady事件
document.addEventListener('WeixinJSBridgeReady', function() {
document.getElementById('audios').play()
})

</script>
第三种:创建触摸监听(touchstart)
原理:当浏览器打开页面时,通过触摸屏幕事件,来触发音频播放 
<audio autoplay="autopaly" loop="loop" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>

<script>
// 将以下代码添加到js入口函数内即可
document.addEventListener('touchstart', function() {
document.getElementById('audios').play()
})

</script>
第四种:综合以上自定义Func实现交互触发play() 
不推荐此方法,上面三种方法足以解决日常问题
<audio src="bg.mp3" id="audios" autoplay preload loop="loop"></audio>
<script>
function audioAutoPlay(id){
var audio = document.getElementById(id),
play = function(){
audio.play();
document.removeEventListener("touchstart",play, false);
};
audio.play();
document.addEventListener("WeixinJSBridgeReady", function () {
play();
}, false);
document.addEventListener('YixinJSBridgeReady', function() {
play();
}, false);
document.addEventListener("touchstart",play, false);
}
audioAutoPlay('audios');

</script>

https://www.cnblogs.com/viphchok/p/5315031.html

图片加载完成:

https://blog.csdn.net/hbiao68/article/details/52683322

最新文章

  1. IOS开发--微信支付
  2. Z-XML团队年终博客整理
  3. Spark(三): 安装与配置
  4. &lt;邮件服务postfix+mysql&gt;MAIL第二篇
  5. Razor引擎总结
  6. 【前端】CSS雪碧
  7. 完整的堆栈JavaScript路(十五)HTML5 focus 扩大 (扩展点)
  8. 【UML 建模】活动图介绍
  9. failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected 排坑指南
  10. [转] Node.js中package.json中库的版本号详解(^和~区别)
  11. #8 Python数学方法
  12. ASP.NET Web API(MVC API)
  13. Oracle(2)之多表查询&amp;子查询&amp;集合运算
  14. Atcoder Contest069F:Flag
  15. GoF设计模式学习-单例模式
  16. iOS自动化-iOS录屏xrecord及解决iPhone设备不显示的问题
  17. Python学习---重点模块之re
  18. C#中引用类型和值类型分别有哪些
  19. 【策略】一致性Hash算法
  20. 【bzoj1056】排名系统

热门文章

  1. (转载)java高并发:CAS无锁原理及广泛应用
  2. SQLMAP自注入--INJECTION TECGBUQUES FINGERPRINT
  3. 桥接模式下,主机能ping通虚拟机,虚拟机ping不通主机
  4. sql server中 设置与查看锁的超时时间(ZT) @@LOCK_TIMEOUT
  5. vue简单事件
  6. 8.6培训 D1
  7. C++抽象类实践
  8. Android Studio设置国内镜像代理
  9. leetcode 75颜色分类
  10. Amphorae 与 Octavia Worker 的安全通信实现