微信小程序web-view使用audio标签播放音频文件时无法自动播放的问题

本文介绍了在微信小程序的web-view中使用audio标签在iOS系统上无法自动播放的问题及解决方法。由于iOS的安全限制,audio标签必须有用户交互才能播放。作者通过在点击事件中先播放一段空的音频来触发播放权限,从而实现语音导航的自动播放功能。这种方法在作者的iOS 11.4.1版本上有效,但可能存在未来版本被封堵的风险。
摘要由CSDN通过智能技术生成

重点: 这个解决方法仍然最少还是需要点击一次才可以, 完全不点击就自动播放的方法暂时还是没有找到

1. 背景

我要实现的功能是语音导航, 需要将导航的信息通过文字转换成语音, 然后播放出来. 现在就差播放出来这一步.

由于使用的是web-view, 所以无法使用微信原生提供的wx.createInnerAudioContext方法(jweixin-1.3.2.js 中没有 wx.createInnerAudioContext方法), 也看了下web-view中支持的其他音频播放JSSDK, 都跟需求不符合.

所以就想到使用html5中的audio标签。

 

2. 问题描述

在使用audio标签后发现,ios系统中,无法播放语音,找了很久只是在网上找到的说法是:ios中的audio没有自动播放功能,必须要有用户交互才可以播放。(从安全角度,以及流量角度看,这也是可以理解的)

但是,对于我目前要实现的功能,没办法不停的让用户去点击操作。

 

3. 解决思路

在网上找了各种解决方法,都是播放一次就行了, 但是基本也是要监听了点击事件的。所以就考虑看,能不能:不允许自动播放嘛...我就试试点击"开始导航"按钮的时候, 播放一段空的语音, 然后再需要导航的地方, 用代码去控制播放要的语音...

结果一试,还真可以。(就怕以后IOS更新后,把这个地方给堵住了,目前我IOS版本是11.4.1,感觉是个漏洞)

 

4. 测试代码实现

a. 小程序加入web-view, 并将src地址指测试页面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值