查了很多文章,凡在vue项目中引入video.js插件,
都会出现视频播放器中间出现一个大叉号导致视频无法播放,同时控制台出现no compatible source was found for this media的错误提醒的情况,
究竟是什么原因呢?
翻译过来是找不到匹配媒体资源:
no compatible source was found for this media 该媒体没有找到兼容的源代码。
有网友提出是因为chrome禁止了flash的加载,,只需把flash选项更改为‘允许’即可。
操作如下:
然而,我依照网友的建议,依然无效,报错情况涛声依旧。
那到底是什么情况!!!
请来大神,发出“解决不了就吃屎”的毒誓,终于搞定了这个问题!
其实解决方法很简单:Vue.nextTick()
如果不引入video.js,那么视图更新迅速,DOM元素解析和异步数据获取之后,视图就可以即时得到更新;然而由于插件video.js的运行机制,导致在获取数据之后,视图也无法得以快速更新,那么按照传统的做法,即使在mounted中调用了对videojs的初始化函数,依然出现后台提示获取不到数据的情况。
这时候$nextTick就发挥了功能。
Vue.nextTick()是在下次 DOM 更新循环结