我正在尝试提供视频播放列表,并且仅在点击其链接后才播放视频。这是我的代码:
<!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。
有什么想法吗?谢谢!
答案 0 :(得分:2)
答案 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的方法。