解决ios微信下vue项目组件切换并自动播放音频问题

 更新时间:2018年01月23日 11:15:55   作者:TimeFly  
最近在做一个英语答题项目,项目需求是通过答题取的成绩 , 答题的题型是分为,听音选图,看图选词和填空题.下面小编给大家带来了ios微信下vue项目组件切换并自动播放音频的解决方案,需要的朋友参考下吧

最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种题型 , 我做了相应的组件 , 每次切换题目的时候 ,显示对应的的组件 , 要求听音选图的时候会自动播放音频 .

惯例 , ios下的safari和微信内置浏览器都不支持audio的自动播放 , 通常的解决方案都是通过 document.addEventListener('WeixinJSBridgeReady',function(){audio.play()},false) 来实现的自动播放 , 但是 WeixinJSBridgeReady 事件从页面加载开始到结束只会加载一次 ,  而且不能通过 removeEventListener 来移除 , 所以会有两个问题:

1.从首页面到答题页面是路由切换的 , 但是处于开始页面时候 , WeixinJSBridgeReady这个事件已经加载完了 , 跳转到答疑页面的时候已经无法监听到该事件了;

2.首页就是答题页面的时候,在题型组件切换的时候只会在第一次加载听力题型的时候会自动播放 , 再次切换到这种题目的时候无法再次自动播放 .

经过不断的测试 , 发现ios下不支持的原因是 不支持动态创建的audio标签自动播放 , 包括页面第一次加载 , 所以转化了思路 ,把audio标签放在顶层的App.vue里面 , 不随着组件的切换创建和销毁 , 然后在App.vue里面写一个的方法 , 接受src和callback的参数 , 在main.js挂在全局上, 每次切换的时候 ,调用该方法传入对应的src , 代码如下:App.vue

(关于为什么用document.getElementById , 其实本来是准备用$refs的 , 但是不知为何在app.vue中无法获取 , 控制台打印的$ref能看到有audio 了, 但是不可读)

main.js

 

组件内:

 

这里要注意的两点: 1.app.vue中的audio标签必须设置 controls , 然后通过css隐藏该audio ,否则无法播放 ;

2.在页面加载的时候需要通过 监听  document.addEventListener('WeixinJSBridgeReady',function(){audio.load()},false)   让audio.load()加载一次 ,否则后续也无法自动播放 ;

总结

以上所述是小编给大家介绍的解决ios微信下vue项目组件切换并自动播放音频问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS中WKWebView的一些特殊使用总结

    iOS中WKWebView的一些特殊使用总结

    这篇文章主要给大家介绍了关于iOS中WKWebView的一些特殊使用,文中通过示例代码介绍的非常详细,对大家学习或者使用iOS具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 详解IOS串行队列与并行队列进行同步或者异步的实例

    详解IOS串行队列与并行队列进行同步或者异步的实例

    这篇文章主要介绍了详解IOS串行队列与并行队列进行同步或者异步的实例的相关资料,IOS中GCD的队列分为串行队列和并行队列,任务分为同步任务和异步任务,他们的排列组合有四种情况这里就一一分析下,需要的朋友可以参考下
    2017-07-07
  • iOS去除图片背景颜色的方法

    iOS去除图片背景颜色的方法

    本篇文章给大家分享一下iOS去除图片中指定范围内颜色的三种方式,需要的朋友参考学习下吧。
    2017-12-12
  • iOS应用开发中图片的拉伸问题解决方案

    iOS应用开发中图片的拉伸问题解决方案

    这篇文章主要介绍了iOS应用开发中图片的拉伸问题解决方案,有时图片的拉伸只需要拉伸中间部分而不拉伸两端,这是本文所关注的问题,需要的朋友可以参考下
    2016-02-02
  • 关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一看看吧
    2018-11-11
  • IOS 开发之对象为空的判断(nil、null)详解

    IOS 开发之对象为空的判断(nil、null)详解

    这篇文章主要介绍了IOS 开发之对象为空的判断(nil、null)详解的相关资料,需要的朋友可以参考下
    2017-02-02
  • IOS多线程开发之线程的状态

    IOS多线程开发之线程的状态

    这篇文章主要介绍了IOS多线程开发之线程的状态 的相关资料,需要的朋友可以参考下
    2015-12-12
  • iOS如何使用自己添加的字体库

    iOS如何使用自己添加的字体库

    这篇文章主要为大家介绍了iOS如何使用自己添加的字体库详细过程,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • IOS 单击手势的添加实现代码

    IOS 单击手势的添加实现代码

    这篇文章主要介绍了IOS 单击手势的添加实现代码的相关资料,需要的朋友可以参考下
    2017-05-05
  • UIScrollView实现六棱柱图片浏览效果

    UIScrollView实现六棱柱图片浏览效果

    这篇文章主要为大家介绍了UIScrollView实现六棱柱图片浏览效果示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论