javascript – 动态视频标签和Knockout JS
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 动态视频标签和Knockout JS,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1469字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用Knockout动态更改视频标记的视频源.这是代码:
<div data-bind="if: resource().encodingformats() != ''">
<video style="max-width: 100%;" controls>
<!-- ko with: resource() -->
<source data-bind="attr:{ src: webmUrl }" type='video/webm; codecs="vp8, vorbis"'>
<source data-bind="attr:{ src: oggUrl }" type='video/ogg; codecs="theora, vorbis"'>
<source data-bind="attr:{ src: mp4Url }" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
<!-- /ko -->
</video>
</div>
我正在使用if绑定来确保在当前资源发生更改时呈现全新的视频标记.
这适用于除Firefox以外的所有浏览器. Firefox给了我一个错误(实际上是警告)
<source> element has no "src" attribute. Media resource load failed.
我猜测源元素是在没有设置src属性的情况下瞬间渲染的,这导致它炸弹?
有没有一种简单的方法来解决这个问题?我想我可以绑定整个视频的html,但这似乎过于草率.是否有一种简单的方法可以让Firefox使用相同的代码,否则在IE9中工作正常?
编辑
我还要提一下,在使用Firebug查看生成的html之后,我将整个源代码应用到了我的代码中,并且运行正常.换句话说,我抛弃了淘汰赛绑定一分钟,并复制在淘汰赛产生的html中,一切正常.
问题当然是Firefox对于如何生成源标记非常挑剔.
解决方法:
事实证明,上面的真正问题是,即使没有错误,Firefox也会触发“错误”事件.
因此,如果您订阅此事件以便您可以回退到IE8用户的Flash播放器,请务必检查“错误”处理程序以确保实际上存在错误.
$(videoTag).one("error", function(){
//sometimes Firefox fires this event even though there's no error :-/
if (!this.error) return;
一旦你这样做,Firefox应该很高兴让你像我上面那样绑定视频标签的来源.
内容总结
以上是互联网集市为您收集整理的javascript – 动态视频标签和Knockout JS全部内容,希望文章能够帮你解决javascript – 动态视频标签和Knockout JS所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。