首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态添加视频时,Video.js在Firefox中不显示控件

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

Stack Overflow用户
提问于 2013-07-13 04:13:59
回答 2查看 1.5K关注 0票数 0

我试图提供一个视频播放列表,只播放一个视频,一旦它的链接被点击。下面是我的代码:

代码语言:javascript
复制
<!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的错误消息:

代码语言:javascript
复制
TypeError: mplayer.requestFullScreen is not a function

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

有什么想法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-13 04:59:26

我找不到这个问题的答案,也找不到绕过它的方法,所以我尝试了其他玩家。

它做了我想要的所有事情,并且有一个内置的播放列表功能(这正是我需要的,也可能是导致我的问题的原因),所以我使用的是:

Codo Player

票数 2
EN

Stack Overflow用户

发布于 2014-11-02 21:18:56

Video.js既是好的,也是坏的。我很感谢你为它所做的工作,但我已经花了几天的时间让它正常工作。我希望我能早点找到你的答案,codoplayer看起来不错。

只要出现javascript错误,Videojs就会出错,随后无法在控制栏上设置正确的类等。

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

首先,确保你自己的脚本没有失败……

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

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

为什么?video.js中的一些方法似乎没有意识到techGet可能抛出..下面是一个示例:

代码语言:javascript
复制
vjs.Player.prototype.currentSrc = function(){
  return this.techGet('currentSrc') || this.cache_.src || '';
};

它在techGet上抛出一个异常,这在火狐,IE8等中很常见。它永远不会到达this.cache_.src || ''。看起来这不是我们的本意,所以很可能是个bug。

如果对IE8感兴趣,您将不得不对所有对innerHTML的调用做一些处理,它们可能会失败,并需要替换为在DOM上工作的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17623285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档