0

由于 Firefox 不允许我在<video>-tag 中使用 .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-call 上生成错误并出现错误:

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

关于如何解决这个问题的任何想法?

4

1 回答 1

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";

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

于 2013-10-01T18:39:12.377 回答