0

我正在使用 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>

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

谢谢。

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

4

1 回答 1

0

不幸的是,您正在寻找的章节功能(尚未)在 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

于 2014-05-03T13:28:52.483 回答