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下的微信浏览器自动播放音频相关推荐

  1. ios微信下vue项目组件切换并自动播放音频的解决方案

    最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种 ...

  2. js 自动播放音频文件,报警提示音等

    js 自动播放音频文件,报警提示音等 谷歌浏览器的音频,默认是不能在页面载入时直接自动播放的. 至少需要用户点击一下页面,才可以播放音频,这个策略的目的是保证用户的体验感,如果每个页面都能在用户未接触 ...

  3. PHP和js判断访问设备是否是微信浏览器实例

    PHP和js判断访问设备是否是微信浏览器实例,代码非常精简,适合新手学习. js判断是否是微信浏览器: function is_weixin() { var ua = window.navigator ...

  4. 解决ubuntu下的firefox无法在线播放音频和视频的问题

    解决ubuntu下的firefox无法在线播放音频和视频的问题 参考文章: (1)解决ubuntu下的firefox无法在线播放音频和视频的问题 (2)https://www.cnblogs.com/ ...

  5. 微信浏览器 MP4播放失败,安卓下微信浏览器不能播放MP4问题的解决,gzip捣的鬼

    今天遇到一个很奇葩的事,MP4视频在安卓的微信浏览器中播放不了,提示"微信浏览器 MP4播放失败" 但是在其他手机浏览器里可以播放,而且苹果的微信中也可以播放 最后研究了一下午,找 ...

  6. Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器

    Win10系统下禁止ie浏览器自动跳转到Microsoft Edge浏览器 说明 步骤 1)打开Microsoft Edge浏览器 2)点击"设置",如下图 3)点击"默 ...

  7. HTML网站微信打开自动播放音乐JS

    源码简介: HTML网站微信打开自动播放音乐JS,众所周知网站里面的bgm在微信是不能自动播放的,好像是因为浏览器内核限制禁止自动播放,具体也不清楚,经过我的测试这个代码确实可以修复微信不自动播放音乐 ...

  8. 微信android自动播放视频文件,vue-player或TcPlayer在微信内自动播放video和audio

    不管是IOS框互理.各近架跳机蓝种近架跳机蓝种近架跳和Android,当video和audio初始src为空,根据点击不同的媒体源(非播放器控件),比如多个章节的视频列表,动态给src赋值并执行pla ...

  9. html5 移动端 Android和iOS手机 video自动播放

    <video webkit-playsinline playsinline x5-playsinline="" x-webkit-airplay="allow&qu ...

最新文章

  1. C. Code a Trie(Trie+dfs+贪心)
  2. dynamodb java_使用Java将项目插入DynamoDB表
  3. 辽宁交通高等专科学校计算机专业宿舍,辽宁省交通高等专科学校宿舍条件怎么样 有独立卫生间和空调吗...
  4. 毛概社会实践报告3000字
  5. CFile和CStdioFile的文件读写使用方法
  6. Android开发笔记(一百零六)支付缴费SDK
  7. 英国通讯服务商与采购“不公平待遇”的较量
  8. 凸优化第五章对偶 5.7 例子
  9. 树莓派做微信公众号服务器,树莓派与微信公众号对接(python)
  10. pygame 键盘操作
  11. el-table因为出现垂直滚动条造成多一个td的空白格
  12. C++横板格斗小游戏(基于Easyx图形库)
  13. Android直播中弹幕效果实现
  14. python节日贺卡绘制
  15. DeFi+NFT+DAO,MIGO打造区块链新金融雏形
  16. 【Microsoft Azure 的1024种玩法】二十六. 在Azure VM中手动部署Windows Admin Center管理平台
  17. 带你修改电脑用户名从中文到英文
  18. Chromium的GPU进程启动过程分析
  19. topcoder赚钱的方法
  20. EDK2之debug

热门文章

  1. 将图片和音频转换成base64直接在HTML中使用
  2. linux如何授权HADOOP,hadoop用户权限管理
  3. php邮箱必填,WordPress移除用户新注册时邮件必填选项(注册不填邮箱/邮箱非必填)...
  4. 三类完整性规则mysql下规则实现短语_关系数据库有三类完整性规则,分别是参照完整性规则、用户自定义的完整性和()规则。...
  5. 电感、电容极性的判断
  6. 分布式 ID 解决方案帮你总结好啦!收藏拿去面试去。
  7. Mac开发利器之程序员编辑器MacVim
  8. 程序员的表白浪漫HTML生日礼物
  9. 人脸识别、语音识别系统
  10. XSSF:POI IndexedColors 编码 与 颜色 对照(本想自定义颜色,不方便实现。先尽量找个能用的)