在动态添加视频时,Video.js不显示Firefox中的控件

时间:2013-07-12 20:13:59

标签: video.js

我正在尝试提供视频播放列表,并且仅在点击其链接后才播放视频。这是我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
<title>WW Video Player</title>
<link href="http://vjs.zencdn.net/4.0/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.0/video.js"></script>
</head>
<body>
<video id="video_player" class="video-js vjs-default/skin" width="800" height="600" data-setup='{ "controls": true }'></video>

<script type="text/javascript">
    videojs("video_player", {}, function() {});

    function SelectVideo(path)
    {
        var mplayer = videojs("video_player", { "controls": true, "autoplay": false });
        mplayer.src({ type:"video/mp4", src: path});
        mplayer.play();
        mplayer.requestFullScreen();
    }
</script>

<a href="#" onclick="SelectVideo('/path/file.mp4'); return false;">Play Video</a>

</body>
</html>

<video>标记中,我尝试添加普通controls并删除data-setup,但我无法显示控件。

此外,mplayer.requestFullScreen();也无效 - 这是Firebug的错误消息:

TypeError: mplayer.requestFullScreen is not a function

我在Windows 7 64bit上运行Firefox 22.0。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

我无法找到这个问题的答案或找到解决方法,所以我尝试了其他玩家。

这个做了我想要的一切,并且有一个内置的播放列表功能(这是我需要的,可能导致我的问题开始),所以这就是我使用的:

Codo Player

答案 1 :(得分:0)

Video.js同时又好又坏。我很欣赏已经进入的工作,但我花了好几天才让它正常工作。我希望我早些时候找到你的答案,codoplayer看起来不错。

每当发生javascript错误时,Videojs都会出错,然后无法在控制栏上设置正确的类等。

糟糕的javascript可能在您自己的代码中,而video.js中有一个会影响Firefox。

首先,确保您自己的脚本没有失败......

在video.js中必须更改的功能是:vjs.Player.prototype.techGet()

当发生异常时,它会处理它,然后在最后重新抛出。替换'throw e'行' 'return null;'

为什么呢?在video.js中有一些方法似乎没有意识到techGet可以抛出..这是一个例子:

vjs.Player.prototype.currentSrc = function(){
  return this.techGet('currentSrc') || this.cache_.src || '';
};

只要技术是闪存,它就会在techGet上抛出异常,这在Firefox,IE8等中很常见。它永远不会到达 this.cache_.src || ''即可。看起来这不是意图,所以它可能是一个错误。

如果对IE8感兴趣,你将不得不对所有对innerHTML的调用做些什么,它们可能会失败并且需要替换为适用于DOM的方法。