配置VideoJS Flash后备

时间:2013-08-27 12:21:41

标签: javascript html5 firefox mp4 video.js

由于Firefox不允许我在<video> - 标记中使用.mp4文件,因此我必须在VideoJS player上使用Flash-fallback。

对于Chrome,Safari和IE,我可以使用javascript配置我的VideoJS播放器以执行任何操作。例如,我喜欢循环5次,隐藏控件并静音视频。对于HTML5版本没有问题:

// Initialize the video with some settings
videojs(videoID, { 
    "controls": false, 
    "autoplay": false,
    "preload":  "auto",
});

var myVideo = videojs(videoID);

// Set the counter
var loop_count = 1;

// Function to loop the video exaclty 5 times
var loopInstagramVideo = function() {
    if (loop_count <= 5) {
        myVideo.play();
        loop_count++;
    } else {
        loop_count = 1;
    }
};

// Function to manipulatie the playing video (mute, no controls,...)
var setVideoOptions = function() {
     myVideo.muted(1);
     myVideo.controls(0);
};

// Set functions on the video
myVideo.on("play", setVideoOptions);
myVideo.on("ended", loopInstagramVideo);

所以我想对Flash版本做同样的事情 上面的代码在videojs上生成错误 - 调用错误:

TypeError: The element or ID supplied is not valid. (videojs)

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

虽然这不是你的“循环”问题的答案,但我自己发现在对元素调用videojs()之后,ID会发生变化。无论是元素的ID更改还是videojs调用的焦点变化,我都不知道。与ID无效有关的错误是由您的第一次和第二次videojs()调用引起的。

我会改变这个:

videojs(videoID, { 
    "controls": false, 
    "autoplay": false,
    "preload":  "auto",
});

var myVideo = videojs(videoID);

对此:

var myVideo = videojs(videoID);

myVideo.controls = false;
myVideo.autoplay = false;
myVideo.preload = "auto";

或者将这些属性放在视频标签中。