我记得之前在一次项目中,出现过浏览报错:

所以在这次H5的制作中,我使用了iframe来加载音频文件,使用这种方式后,电脑端是没有问题的,但是当上传至服务器上在手机上浏览时,会出现点击音乐旋转按钮无法暂停播放音乐(使用iframe之后相当于一个子文档#document,但是我也找到方法获取子文档中的audio元素了,但是不知道为什么点击按钮后,暂停播放功能无法生效)、ios浏览器中音乐无法自动播放...等等问题

然后迫不得已,我重新换成了audio标签,然后重新载浏览器中运行,果然出现了第一次项目中的报错信息,但是很莫名的是,手机端居然能够正常自动播放音乐了,除了ios微信端(因为是H5页面,所以只测了微信,但是安卓的微信浏览器和其它浏览器是可以的)。

那么接下来就是要解决ios微信端无法自动播放的问题。

百度了很多方法,如下:

1、js中当文档加载完毕后,获取audio元素,然后调用audio.play()方法:

window.load = function(){

const audio= document.getElementByTagName('audio')[0];

audio.play();

}

运行结果:无效。报错Uncaught(in promise) DOMException

2、有小伙伴说明,ios为了节省用户流量等,对于自动播放中块管控很严格,必须要用户交互后才可以调用audio.play()方法。所以我们就添加了触摸屏幕的事件:

document.addEventListener('touchstart', function() {if(key) {

audio.play();

audio.loop= true;

key= false;

}

})

运行结果:不能根本解决。相当于就是要通过用户触摸屏幕后才能播放音乐,但这个是治标不治本,如果用户没有一打开就触摸屏幕,那就会一很长一段时间都没音乐。

3、WeixinJSBridge接口解决微信中时候视频和音频自动播放问题:

function audioAutoPlay(id) {

let audio = document.getElementById(id);

// 并不一定非要用ID获取,class值获取也可以

audio.play();

// 为了保险起见 这里页也手动调用一下

audio.loop = true;

// 如上 为了音乐能够循环播放

document.addEventListener("WeixinJSBridgeReady", function () {

audio.play();

audio.loop = true;

}, false);

document.addEventListener('YixinJSBridgeReady', function () {

// 暂时还不知道Yixin是什么东西...

audio.play();

audio.loop = true;

}, false);

}

audioAutoPlay(id);

// 传入audio标签的id值

运行结果:解决。这个是微信场景专门提供的api方法,可以解决ios中音视频不能自动播放背景音乐的bug...

不过这个也还是有一点问题,就是总感觉ios比安卓背景音乐播放反应有点迟钝。安卓基本一打开就有音乐,但是ios差不定多要等三秒左右,也不知道是什么问题...

【补充知识】

【参考网址】

微信播放在服务器视频无法播放音乐,【bug解决】ios微信浏览器中背景音乐无法播放...相关推荐

  1. 苹果微信html音乐播放,HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio

    本篇教程探讨了HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < html> Aut ...

  2. 解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转)

    解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转) 参考文章: (1)解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转) ( ...

  3. 解决IOS微信浏览器底部会出现向前向后返回按钮,返回不刷新的问题

    解决IOS微信浏览器底部会出现向前向后返回按钮,返回不刷新的问题 参考文章: (1)解决IOS微信浏览器底部会出现向前向后返回按钮,返回不刷新的问题 (2)https://www.cnblogs.co ...

  4. 解决ios微信浏览器时间不兼容的问题

    解决ios微信浏览器时间格式不兼容的问题 由于ios在微信浏览器中无法识别"YYYY-MM-DD HH:MM:SS"格式的数据,所以在ios中页面将时间格式转换为"YYY ...

  5. 播放ftp服务器视频文件,远程播放ftp服务器上的文件

    远程播放ftp服务器上的文件 内容精选 换一换 添加节点时提示"添加节点失败,节点已存在".待添加节点的服务器上已安装系统性能分析或者添加过节点.如果待添加节点的服务器上已安装系统 ...

  6. 解决IOS微信中 HTML5 中audio的自动播放问题。

    2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html> <html lang="en"> <head ...

  7. HTML实现点击时的阴影(:active)(已解决iOS微信上无法使用)

    一般是用这个委类:active 参考:http://www.w3school.com.cn/cssref/selector_active.asp 但是业界上实现的效果中,今日头条的手机端网页却不是这样 ...

  8. 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...

    产生问题的原因 参考网址:点击 对于自动播放的局限性,没有变通方案.正如前面所提及的,音频流只能从用户触摸事件加载.当针对移动版 Safari 进行开发时,重要的一点是要在必要时调整您的工作流,以适应 ...

  9. video在微信和QQ浏览器中不全屏播放解决

    最近公司做一个视频活动的HTML5页面,页面并不复杂,但是要求视频播放的时候不全屏.在网上看到好论坛类似的基本问题,以前有申请白名单的,在白名单的视频链接或者腾讯旗下的视频链接是原生播放,否则安卓会被 ...

最新文章

  1. CCF OJ 1113-括号匹配[栈]
  2. 2020 ICPC亚洲区域赛(沈阳)F-Kobolds and Catacombs(思维+模拟)
  3. leetcode46. 全排列(回溯)
  4. 我国三大坐标系的区别(西安80、北京54、WGS-84)
  5. 计算机硬件知识考证题,计算机硬件知识题(答案)资料
  6. 面对DNS劫持,只能坐以待毙吗?
  7. Vue 学习笔记(1) Vue 基础语法 + Axios 基本使用
  8. 文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
  9. python的copy模块是哪个模块_每周一个 Python 模块 | copy
  10. 除法求模中求逆元的两种方法
  11. 小程序毫秒级倒计时(适用于拼团秒杀功能)
  12. [RK3399][Android7.1] HDMI Debug
  13. 某个题库中的题目数量修改了,为何展示题号展示时没有它?
  14. 新宝线上股票大箱体终于向上突破站稳了
  15. flutter之出现 List is not a subtype of type 问题
  16. 用Python做一个美丽的每日计划
  17. 通过Web界面统一管理AD和Exchange的工具
  18. Elasticsearch关闭index的自动日期检测
  19. html id命名规范,关于Html class id 命名规范
  20. Android入门教程(八)

热门文章

  1. 运行tensorflow-datasets遇到import tensorflow.compat.v2 as tf报错ImportError: No module named tensorflow.V2
  2. python青少年编程_机器人Python青少年编程开发实例
  3. 基于工作流平台的ITSM系统
  4. 如何用Python检验线性回归的假设是否满足
  5. Nginx配置虚拟主机(基于域名、端口及IP)
  6. python2 + django 导出 excel 功能 接口示例代码(做记录)
  7. 中文字符 简体繁体相互转换
  8. 谷歌EfficientNet高效卷积网络的学习和使用
  9. 划词翻译 插件的安装教程 附下载链接【超简单】
  10. 第0篇日记 先立一个flag——开始有了做阅读器的想法