十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍如何解决ios audio无法播放的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联-专业网站定制、快速模板网站建设、高性价比宽甸网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宽甸网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宽甸地区。费用合理售后完善,10余年实体公司更值得信赖。ios中audio不能直接通过audio.play()播放,需要用户在click事件或者touch事件中执行audio.play()才能播放。
ajax回调中audio.play()音乐不能正常播放。
用户点击按钮,等服务器返回数据后再播放相应的成功或失败的音乐,测试在ios中不能正常播放。猜测ios中的audio不能再ajax回调函数中play()
下面记录一下ios中ajax回调中播放音乐的问题解决过程
解决方案一 --降低音量
在用户点击时间后将audio的音量设置为0,等success后将音量设置为1; volume可以控制audio的音量大小,取值范围为 0~1
audio.volume=number
发现在chrome的手机模式可以将音乐静音,ios中竟然不能控制音量,好吧这个被ios屏蔽了。放弃了
解决方案二 --播放后立即暂停
用户点击按钮后立即播放音乐,等ajax返回数据后再继续播放。测试能够正常播放。部分代码如下:
// 用户click事件 if (this.isIOS()) { // ios单独处理 安卓不需要 this.$refs.audio.play() this.$refs.audio.pause() } // ajax成功后的事件 this.$refs.audio.pause() this.$refs.audio.currentTime = 0 this.$refs.audio.play()
由于是vue项目,所以代码中有this.$refs小伙伴们别介意;
总结
在ios中,如果需要播放音乐或者视频,需要用户手动触发事件在调用.play()才能播放(autoplay或者直接.play()是不能直接触发的);
如果需要在ajax回调函数中播放音乐,需要在用户触发事件后播放音乐立即暂停然后才能在回调函数中.play(),不然ios中是播放不成功的。
以上是“如何解决ios audio无法播放的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。