使用VideoJS时如何动态加载视频网址?

时间:2016-03-18 23:44:49

标签: javascript jquery html video video.js

我有一个网页需要在回调服务器后加载视频以检索URL。为了测试,我只是将视频加载到页面中,但是当它工作时我将有选择地显示/隐藏容器。

如果我直接将网址嵌入到src标记中并且data-setup =“{}”,那么就可以了。

但是,当我尝试动态加载它时,无法加载视频(没有错误)。

这是HTML:

<div id="video-container">
<video id="videoplayer" class="video-js vjs-default-skin" controls preload="auto">
    <source id="videosource" type='video/mp4'>
    <p class="vjs-no-js">
        To view this video please enable JavaScript, and consider upgrading to a web browser that
        <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
    </p>
</video>

这是我正在运行的代码:

$.get(url,
      function (data) {
          videojs("videosource", {}, function () {
                this.reset();
                this.src(data);
                this.load();
                this.play();
            });
        });

如果我不包含.reset()调用,则错误“this.el_.load不是函数。如果我调用.reset()它不会抛出任何错误,但没有任何错误加载。我我正在运行Chrome,但它也无法在Firefox中加载。

我在设置src时尝试了相同的结果(没有错误,但也没有视频):

this.src({ type: "video/mp4", src: data });

我正在通过CDN使用5.8版本。

关于我哪里出错的任何想法?

1 个答案:

答案 0 :(得分:2)

将我的评论移到答案中,当我使用videojs时,我只使用了video元素并使用了id。因此,删除不需要的source元素并将其更改为videojs("videoplayer",以定位正确的元素。