发现问题:

H5页面在微信内置浏览器播放的时候会发现,部分安卓机型不在支持音乐自动播放,与视频一样,需要人为触发后才能使用。

为此,微信社区给出了答案:

Android微信内网页音频自动播放能力调整 | 微信开放社区

但甲方不愿意接受,这就很难受了,作为友军我们只能一边安慰,一边找解决方案。

分析问题:

出现这种情况,就要从代码源头去分析了,早期我们让手机自动播放,我们的代码如下:

引入微信js(jweixin)后:

wx.ready(function(){var globalAudio=document.getElementById("mp3");globalAudio.play();})function onBridgeReady() {WeixinJSBridge.call('hideOptionMenu');}if (typeof WeixinJSBridge == "undefined") {if (document.addEventListener) {document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);} else if (document.attachEvent) {document.attachEvent('WeixinJSBridgeReady', onBridgeReady);document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);}} else {onBridgeReady();}

这样就能实现音乐自动播放了,但不巧,这次情况又不一样了,好尴尬呢。

解决问题:

好在有度娘,可以搜索到解决方案,可以参考参考:

有一种方案叫做:web vedio api

更详细的可以查看:

Web Audio API - Web APIs | MDN

快上码~

  /*** @author ccbbs* @file 解决安卓webview自动播放背景音乐的问题*/function BGMAutoPlayMgr/* solveAndroidBGMAutoplay */(url) {this.audioContext = new (window.AudioContext || window.webkitAudioContext || window.mozAudioContext)();this.sourceNode = null;this.buffer = null;this.isPlayingBGM = false;this.toggleBGM = function () {if (typeof this.sourceNode == 'object') {if (this.isPlayingBGM) {this.sourceNode.stop();this.isPlayingBGM = false;} else this._playSourceNode();}}this._playSourceNode = function () {const audioContext = this.audioContext;audioContext.resume();const _sourceNode = audioContext.createBufferSource();_sourceNode.buffer = this.buffer;_sourceNode.loop = true;_sourceNode.connect(audioContext.destination);_sourceNode.start(0);this.sourceNode = _sourceNode;this.isPlayingBGM = true;}let loadAndAutoPlay = (audioUrl) => {const audioContext = this.audioContext;const xhr = new XMLHttpRequest();xhr.open('GET', audioUrl, true);xhr.responseType = 'arraybuffer';xhr.onreadystatechange = () => {if (xhr.status < 400 && xhr.status >= 200 && xhr.readyState === 4) {audioContext.decodeAudioData(xhr.response, buffer => {this.buffer = buffer;WeixinJSBridge.invoke("getNetworkType", {}, () => this._playSourceNode());});}}xhr.send();}loadAndAutoPlay(url);loadAndAutoPlay = null;}const bgm = new BGMAutoPlayMgr('http://sy.lamalego.com/epiboly/earth/static/m.mp3');setTimeout(function () {if (CheckIsAndroid()) {//如果是Androidbgm.toggleBGM();}},500)

也贴一下判断是否为安卓机型:

function CheckIsAndroid() {var browser = {versions: function () {var u = navigator.userAgent, app = navigator.appVersion;return { //移动终端浏览器版本信息ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器 //u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器iPad: u.indexOf('iPad') > -1, //是否iPad};}(),}//if (browser.versions.iPhone || browser.versions.iPad || browser.versions.ios) {//    return false;//}if (browser.versions.android)return true;return false;}

根据自己需要去优化吧,散会!

微信web H5 安卓无法播放的解决方案相关推荐

  1. 微信浏览器H5页面自动播放背景音乐

    微信浏览器H5页面自动播放背景音乐 最近遇到一个需求 一个文章详情页(图文结合) 进入页面后自动播放背景音乐 正常用video标签后安卓打开后是自动播放的 但是ios是不支持自动播放的 经过不懈努力的 ...

  2. 微信中H5同层Video播放器接入教程

    微信中H5同层Video播放器接入教程 x5-video-player-type 启用H5同层播放器 通过video属性"x5-video-player-type"声明启用同层H5 ...

  3. video标签android全屏,视频video标签在移动端微信中默认全屏播放的解决方案

    最近后盾人移动端上线了,开发挺顺利,但也遇到几个小坑. 后盾人中的视频是用video视频标签引入的,当在微信中打开后盾人,播放视频的时候,视频默认会全屏播放. 安卓和ios下都存在此问题,解决方法如下 ...

  4. 解决微信浏览器video标签自动播放视频失效

    正常在浏览器好好的视频,在微信内置浏览器中点击播放全屏,样式也不一样,自动播放失效.罪魁祸首是微信把video标签都成微信规则的了.下面方式可以解决视频播放全屏以及不能自动播放的问题. <vid ...

  5. H5微信端在IOS上不能播放音乐解决方案

    前言 在做各种HTML5场景页面的时候,插入背景音乐是一个很普遍的需求.我们都知道,iOS下的safari是无法自动播放音乐的,以至一直以来形成了一种认知,iOS是无法自动播放媒体资源的.直到微信火爆 ...

  6. SkeyeVSS实现监控摄像头进行网页WEB和微信、手机无插件直播点播解决方案

    SkeyeVSS系统介绍 SkeyeVSS是一个基于Web无插件直播点播的视频云综合监控管理系统: 支持 WEB 页面配置管理; 支持组织机构管理; 支持设备或平台通过GB/T28181协议接入; 支 ...

  7. Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案

    Windows PC. Linux. Android. iOS多平台支持H5无插件播放RTSP摄像机解决方案 需求分析 视频流媒体监控行业已经进入互联网时代,浏览器承载了绝大多数的互联网访问流量,目前 ...

  8. 安卓音乐播放时微信视频微信语音电话进来音乐暂停播放

    最近项目中遇到一个问题,app内音乐后台播放时,如果有电话或者微信视频通话进来,app后台音乐还在播放.这样就造成用户体验不好,研究了市面上的音乐播放器,比如网易云音乐就很好的做到了如果有微信视频或者 ...

  9. 【H5】html5 video 在微信浏览器视频不能自动播放 !

    html5 video在安卓微信浏览器视频不能自动播放 ! html5 video在安卓微信浏览器视频不能自动播放 ! html5 video在安卓微信浏览器视频不能自动播放 ! 注:重要的事情说三遍 ...

最新文章

  1. 微软笔试题 2013暑期实习笔试题目
  2. 关于SQL操作的一些经验
  3. 通过实例理解 JDK8 的 CompletableFuture
  4. SSL与WildFly 8和Undertow
  5. android 静态方法 构造方法,android基础-Java篇02:类和对象、构造方法、访问权限控制、重载、this关键字、static关键字...
  6. awk嵌套awk_与AWK一起喝咖啡
  7. 第 72 章 FAQ
  8. 三年级下册计算机知识点,【北师大】三年级下册语文各单元知识点归纳
  9. 使用STM32与MAX30102实现的较为稳定的血氧算法
  10. python + selenium 之网银爬虫
  11. C#实现检测打印机状态(包括打印机是否缺纸、打印队列任务数)
  12. 《Revisiting Pre-trained Models for Chinese Natural Language Processing》(MacBERT)阅读记录
  13. hive 漫威the_漫威系列的观看顺序
  14. Java程序员应该学习的10大技术
  15. 一键修复wpcap.dll文件丢失或出错
  16. i.MX283开发板移植RTL8188ETV无线网卡驱动
  17. SJA1000验收滤波器使用
  18. git push origin HEAD:refs/for/master解析
  19. 自定义校验手机号码和电话号码注解
  20. 大数据必知:Hadoop的三大组件和特点

热门文章

  1. Netty使用FileUpload报错Not represented by a file
  2. 初识AS3(十)——加载外部文件进度…
  3. android手机分辨率适配,Android屏幕适配(一)
  4. iOS上传图片方向不对处理
  5. 苹果电脑Mac键盘快捷键
  6. LeCun领导下的Meta AI,押注自监督
  7. ubuntu下安装lua和luarocks
  8. 求两点之间的最短路径
  9. VisualStudio/VS在一个项目中添加多个c++文件
  10. [激光原理与应用-25]:《激光原理与技术》-11- 激光产生技术-非线性技术之激光倍频、非线性晶体CLBO、BBO、LBO