【记录】微信下自动播放音频的解决方案

最近做柜子的项目,需求要求用户用微信扫一扫扫柜子二维码,H5页面跳转到首页打开柜门的同时播放柜门已打开的语音。

方案一:文字转语音 Web Speech API

Web Speech API 能够将语音数据合并到 Web 应用程序中。Web Speech API 有两个部分:SpeechSynthesis 语音合成(文本到语音 TTS)和 SpeechRecognition 语音识别(异步语音识别)。

但是,此方法在安卓微信上不可用!

方案二:howler.js

howler.js是一个适用于现代网络的音频库。它默认使用Web Audio API,并可回退到HTML5 Audio。这使得使用 JavaScript 处理音频在所有平台上都变得简单而可靠。


<script>
import { Howl } from 'howler'
export default {
   mounted () {
    const soundBgm = new Howl({
      src: ['音频'], // 提供多个格式
      autoplay: true,
      loop: false,
      volume: 1,
      preload: true,
      mute: true,
      onplay: function () {
        console.log('播放')
      },
      onpause: function () {
        console.log('暂停')
      },
      onstop: function () {
        console.log('停止')
      }
    })
    soundBgm.play()
  }
}
</script>

方案三:audio标签

<audio ref="audio" id="bookAudio" autoplay>
    <source :src="music" type="audio/mpeg" />
</audio>

由于IOS、Android和微信自带的浏览器不允许自动播放audio和video,记录下我如何解决。

1、触摸监听

原理是当用户触碰到屏幕就开始播放音频,以达到看起来好像是自动播放的假象。如果用户不触碰,则不会播放。


document.addEventListener('touchstart', function() {
    document.getElementById('bookAudio').play()
    // 或者
    soundBgm.play()
})

2、微信浏览器:WeixinJSBridgeReady

微信的内置浏览器内置了 WeixinJSBridgeReady 事件,可以兼容大部分的移动设备。

document.addEventListener('WeixinJSBridgeReady', () => {
    document.getElementById('bookAudio').play()
    // 或者
    soundBgm.play()
}, false)

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值