html5 audio 在手机端是不能直接用代码实现控制播放的,如safari浏览器,因为担心数据流量的问题。所以都要求用户手势点击后才能播放,但使用起来就非常不方便了。有没有办法通过js控制播放?答案是显然的。
其实解决这个问题的方式也比较简单,第一次要用户触发一个播放,然后后面的js播放都要基于同一个audio标签,这样就可以js直接播放不同的音频了。
$(function(){ $('body').on('touchstart',function(){ audio.play(); })})
如上的绑定全局事件方法,audio对象以后都可以再次使用。
audio.src='http://......';audio.play()
2017.8.4 补充一个离奇现象,正的代码添加了preload="none"在微信里打开,要点两次才能播放,浏览器里正常,去掉这个属性后微信里正常。
补充知识:最新的ios系统(11.0之后)如果要使用定位,网页使用的是https的话,必须保证所有加载的资源都是https协议的,否则定位会失败(包括引用高德地图的js库方法也失败)。