VideoJS标题导致未定义的错误

时间:2013-03-26 14:00:47

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

我正在使用VideoJS,CDN托管版本工作正常,但我希望离线使用VideoJS并修改CSS,所以我自己主持。

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

this.player.textTrackDisplay.addComponent(this);

我知道我的captions.vtt文件是正确的,因为它与demo 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>

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

感谢。

编辑:如果我将标题设置为默认值,并且控件不可见,则仅抛出错误。

1 个答案:

答案 0 :(得分: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