通过howler.js实现在Android下的微信浏览器自动播放音频
howler.js是一个把webaudio进行封装的一个js库,通过它可以轻松的对音频文件进行控制播放、暂停、甚至指定播放音频中的某个片段、以及加快等等,这里我们只关注它在微信浏览器中自动播放的问题,有需要了解的可以去官网看看。
官网: https://howlerjs.com/
文档: https://github.com/goldfire/howler.js#documentation
github: https://github.com/goldfire/howler.js
简易使用范例:
// 初始化一个音频类
var sound1 = new Howl({src: ['xxx.mp3'],
});// 播放音频
sound1.play();
完整代码如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js"></script><title>howler.js 测试</title>
</head><body>Android可自动播放<br>IOS需手触碰播放
</body><script>
// 初始化一个音频类,src资源可以是本地的有额可以是服务器上的
var sound1 = new Howl({//src: ['js/515a_5508_520b_f0cf47930abbbb0562c9ea61707c4c0b.mp3'],src: ['http://m8.music.126.net/21180815163607/04976f67866d4b4d11575ab418904467/ymusic/515a/5508/520b/f0cf47930abbbb0562c9ea61707c4c0b.mp3'],
});// 播放音频
sound1.play();
</script></html>
以上代码在Android可以自动播放,IOS不可以自动播放需要手点击触发才能播放。
IOS想要自动播放得再加上微信的WeixinJSBridge,代码更改后如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js"></script><script src="//res.wx.qq.com/open/js/jweixin-1.4.0.js"></script><title>howler.js 测试自动播放 使用WeixinJSBridgeReady</title>
</head><body>使用WeixinJSBridgeReady 安卓苹果均能自动播放
</body><script>
// 初始化一个音频类,src资源可以是本地的有额可以是服务器上的
var sound1 = new Howl({//src: ['js/515a_5508_520b_f0cf47930abbbb0562c9ea61707c4c0b.mp3'],src: ['http://m8.music.126.net/21180815163607/04976f67866d4b4d11575ab418904467/ymusic/515a/5508/520b/f0cf47930abbbb0562c9ea61707c4c0b.mp3'],
});// 播放音频
document.addEventListener('WeixinJSBridgeReady', function() {sound1.play(); //安卓苹果均有效
}, false);</script>
<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script>// VConsole 默认会挂载到 `window.VConsole` 上var vConsole = new window.VConsole();
</script>
</html>
但是需要注意的是如果src指定的是一个语音接口生成的音频,比如百度在线音频,那么需要指定html5参数才能播放。
// 初始化一个音频类
var sound1 = new Howl({src: ['百度在线语音生成接口地址。。。'],html5: true, // A live stream can only be played through HTML5 Audio.
});// 播放音频
sound1.play();
不过这样跟试用audio标签没有什么区别了,测试结果是在Android无法自动播放。只能通过touchstart事件触发播放,在IOS上照样没问题。
其实在Android上只要是audio标签模式根本不用去尝试了,因为被微信规则明确禁止了,看下面的公告:
公告地址:https://developers.weixin.qq.com/community/develop/doc/000e640d77cfa001132a6cb8456c01
对于在线语音接口的情况,如果在安卓上也要实现自动播放只能先下载再用howler.js来播放了。
微信h5自动播放音频的总结:
1.普通的音频:
Android可以自动播放;IOS可以播自动放。
2.在线语音接口生成的音频:
Android不可以自动播放;IOS可以播自动放。Android要实现自动播放只能先下载语音,然后再用方法1
通过howler.js实现在Android下的微信浏览器自动播放音频相关推荐
- ios微信下vue项目组件切换并自动播放音频的解决方案
最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种 ...
- js 自动播放音频文件,报警提示音等
js 自动播放音频文件,报警提示音等 谷歌浏览器的音频,默认是不能在页面载入时直接自动播放的. 至少需要用户点击一下页面,才可以播放音频,这个策略的目的是保证用户的体验感,如果每个页面都能在用户未接触 ...
- PHP和js判断访问设备是否是微信浏览器实例
PHP和js判断访问设备是否是微信浏览器实例,代码非常精简,适合新手学习. js判断是否是微信浏览器: function is_weixin() { var ua = window.navigator ...
- 解决ubuntu下的firefox无法在线播放音频和视频的问题
解决ubuntu下的firefox无法在线播放音频和视频的问题 参考文章: (1)解决ubuntu下的firefox无法在线播放音频和视频的问题 (2)https://www.cnblogs.com/ ...
- 微信浏览器 MP4播放失败,安卓下微信浏览器不能播放MP4问题的解决,gzip捣的鬼
今天遇到一个很奇葩的事,MP4视频在安卓的微信浏览器中播放不了,提示"微信浏览器 MP4播放失败" 但是在其他手机浏览器里可以播放,而且苹果的微信中也可以播放 最后研究了一下午,找 ...
- Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器
Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器 说明 步骤 1)打开Microsoft Edge浏览器 2)点击"设置",如下图 3)点击"默 ...
- HTML网站微信打开自动播放音乐JS
源码简介: HTML网站微信打开自动播放音乐JS,众所周知网站里面的bgm在微信是不能自动播放的,好像是因为浏览器内核限制禁止自动播放,具体也不清楚,经过我的测试这个代码确实可以修复微信不自动播放音乐 ...
- 微信android自动播放视频文件,vue-player或TcPlayer在微信内自动播放video和audio
不管是IOS框互理.各近架跳机蓝种近架跳机蓝种近架跳和Android,当video和audio初始src为空,根据点击不同的媒体源(非播放器控件),比如多个章节的视频列表,动态给src赋值并执行pla ...
- html5 移动端 Android和iOS手机 video自动播放
<video webkit-playsinline playsinline x5-playsinline="" x-webkit-airplay="allow&qu ...
最新文章
- C. Code a Trie(Trie+dfs+贪心)
- dynamodb java_使用Java将项目插入DynamoDB表
- 辽宁交通高等专科学校计算机专业宿舍,辽宁省交通高等专科学校宿舍条件怎么样 有独立卫生间和空调吗...
- 毛概社会实践报告3000字
- CFile和CStdioFile的文件读写使用方法
- Android开发笔记(一百零六)支付缴费SDK
- 英国通讯服务商与采购“不公平待遇”的较量
- 凸优化第五章对偶 5.7 例子
- 树莓派做微信公众号服务器,树莓派与微信公众号对接(python)
- pygame 键盘操作
- el-table因为出现垂直滚动条造成多一个td的空白格
- C++横板格斗小游戏(基于Easyx图形库)
- Android直播中弹幕效果实现
- python节日贺卡绘制
- DeFi+NFT+DAO,MIGO打造区块链新金融雏形
- 【Microsoft Azure 的1024种玩法】二十六. 在Azure VM中手动部署Windows Admin Center管理平台
- 带你修改电脑用户名从中文到英文
- Chromium的GPU进程启动过程分析
- topcoder赚钱的方法
- EDK2之debug
热门文章
- 将图片和音频转换成base64直接在HTML中使用
- linux如何授权HADOOP,hadoop用户权限管理
- php邮箱必填,WordPress移除用户新注册时邮件必填选项(注册不填邮箱/邮箱非必填)...
- 三类完整性规则mysql下规则实现短语_关系数据库有三类完整性规则,分别是参照完整性规则、用户自定义的完整性和()规则。...
- 电感、电容极性的判断
- 分布式 ID 解决方案帮你总结好啦!收藏拿去面试去。
- Mac开发利器之程序员编辑器MacVim
- 程序员的表白浪漫HTML生日礼物
- 人脸识别、语音识别系统
- XSSF:POI IndexedColors 编码 与 颜色 对照(本想自定义颜色,不方便实现。先尽量找个能用的)