由于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)
有关如何解决此问题的任何想法?
答案 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";
或者将这些属性放在视频标签中。