【问题标题】:Does setting techOrder for video.js really work?为 video.js 设置 techOrder 真的有效吗?
【发布时间】:2013-08-10 17:41:12
【问题描述】:

由于一些 IE 问题,我试图强制 video.js 使用将 Flash 放在首位的 techOrder(至少在使用 IE 时,无论如何)。我已经尝试了https://github.com/videojs/video.js/blob/master/docs/tech.md 中提到的所有方法,但没有一个对我有用。我还发现很多人在各种技术网站上问同样的一般性问题,除了某些版本的“对我也不起作用”之外,没有任何回应。我已经能够通过破解 video.js 源来让 Flash 播放器工作,但这显然是错误的路线,因为我想在非 IE 情况下使用 html5。

那么:有人能够完成这项工作吗?有什么例子吗?

【问题讨论】:

    标签: video.js


    【解决方案1】:

    数据设置和选项块方法都对我有用。

    data-setup='{ "techOrder":["flash", "html5"] }'
    

    在数据设置方法中,确保在 HTML 属性值周围使用单引号,在 JSON 中使用双引号。 JSON 需要双精度。

    techOrder 只是一种偏好,不能保证。它仍然取决于特定浏览器支持哪些技术和视频格式。如果这没有帮助,您能否提供有关您的用例的更多细节,并从您的第一次尝试中复制/粘贴您的代码?

    【讨论】:

    • 这是我的视频标签:<video id='player' class='video-js vjs-default-skin' controls preload='auto' width='938' height='528' poster='http://example.com/poster.jpg' data-setup='{"customControlsOnMobile": true, "techOrder":["flash", "html5"]}'> <source src='http://example.com/video.mp4' type='video/mp4' /> </video>。我主要关心的是让这个在 IE 中工作,虽然我从 Mac Chrome 的源窗口中提取了这个(如果我给它提供一个正确破解的 video.js 文件,它能够运行 Flash 版本)。我找到了一种解决方法,但最好让它按预期工作。谢谢!
    【解决方案2】:

    我也无法让 data-setup 方法工作,但我可以通过设置 videojs.options 来让它工作:

    <video .... />
    <script src="http://vjs.zencdn.net/4.4/video.js"></script>
    <script>
      videojs.options.techOrder = ['flash', 'html5'];
    </script>
    

    【讨论】:

      【解决方案3】:

      我发现问题可以通过设置正确的`type来解决。
      设置正确的类型允许 videojs 插件自动检测是否需要后备。 (因此您无需更改技术顺序,只需按照以下方式进行操作即可)

      例如,这定义了一个用 h.264 编码的视频

      videojs('my-videoid').src(
                  {type: 'video/mp4; codecs="avc1.42E01E"', src: 'myvideoh264.avi'}
              );
      

      关于编解码器信息的参考: How to detect supported video formats for the HTML5 video tag?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多