【问题标题】:VideoJS caption causing undefined errorVideoJS 标题导致未定义的错误
【发布时间】:2013-03-26 14:00:46
【问题描述】:

我正在使用 VideoJS,CDN 托管版本运行良好,但我希望离线使用 VideoJS 并修改 CSS,所以我自己托管。

我在 videojs.js 上收到一个未定义的错误:

this.player.textTrackDisplay.addComponent(this);

我知道我的 captions.vtt 文件是正确的,因为它适用于演示 html 文件。我的标记:

<div id="mainVideoList">
        <video id="mainVideoOne" class="video-js vjs-default-skin" width="956" height="538" autoplay preload="auto" loop data-setup="{}">
            <source type="video/mp4" src="assets/Penguins.mp4">
            <track kind="subtitles" src="src/videojs/captions.vtt" default>
        </video>
    </div>

视频播放正常,但抛出错误且不显示字幕。

谢谢。

编辑:仅当我将字幕设置为默认并且控件不可见时才会引发错误。

【问题讨论】:

  • 为什么不继续使用 CDN 版本并在包含原始 videojs CSS 后包含您自己的 custom-videojs.css 文件?这样,您就可以拥有自定义 CSS 并继续使用 CDN。双赢。
  • 因为网站必须离线运行,与外界没有任何联系。
  • 这完全有道理。那时 CDN 就行不通了。您的问题表明它与 CSS 相关:但我希望修改 CSS,所以我自己托管。
  • 是的,我应该更清楚。
  • 是否缺少其他依赖项?如果您在打开(例如)Chrome 开发人员工具的情况下运行您的离线版本,您会得到 VideoJS 正在寻找的任何内容的 404 吗?您是否也通过与我看到的相同机制(file:// 或 http://)打开您的页面、视频和标题

标签: javascript html video html5-video video.js


【解决方案1】:

不幸的是,您正在寻找的章节功能在 videojs 版本 4.x 中(尚未)工作——这是一个已知问题:

https://github.com/videojs/video.js/issues/676

但是,较旧的 3.x 版本确实可以工作。我已经成功地使用 v3.2 来提供带有章节的视频(甚至在 IE6 中也可以使用)——但早期版本的播放器既无法访问也无法响应(无需付出很多额外的努力)。

为了快速处理未捕获的 TypeError(没有足够的时间更彻底地处理),我添加了以下创可贴:

if (typeof component === 'undefined') return;

到函数

vjs.Component.prototype.addChild 

就在该行之前:

this.children_.push(component);

(在我使用的 v4.3 的非缩小版本中,这将在 1660 行左右)。

这显然无法修复损坏的章节功能,但会捕获引发的错误。

我建议不时检查此链接,因为在过去几个月内似乎(最终)在该问题上取得了一些进展:https://github.com/videojs/video.js/issues/676

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多