1

我正在使用引导程序的模态框来使用 videojs 加载视频。我需要从数据库中获取视频文件名。

当有人点击链接时,playVideo()会调用一个函数。我所做的是用 id videoPlayer 填充一个 div 并用视频代码填充它。这是我的 playVideo 功能:

 function playVideo(id)
  {
   $('video').attr('id','CurrentVideo'+id);
    var videoData=new Array();
   $.getJSON('<?PHP echo base_url();?>admin/content/getVideoDetail/'+id,function(data){
       $.each(data,function(k,v){
           videoData.push(v);
           });
       }).done(function(){

     $("#videoPlayer").html('<video id="CurrentVideo'+id+'" class="video-js vjs-default-skin" controls width="530" height="264" preload="none"> <source type="video/mp4" src="<?PHP echo base_url()?>content/videos/'+videoData[3]+'"></video>');

    myPlayer=_V_('CurrentVideo'+id);

    $("#videoBox").modal();

    $("#videoBox").on('hide',function(){
     $("#videoPlayer").html('');
    });
       });
   }

这有时有效,但并非在所有浏览器中都非常一致。我采取了错误的方法吗?此外,videojs有什么缺陷吗?我应该使用其他替代方法,例如 flowplayer 吗?

4

2 回答 2

0

显然你只指定了 mp4。所以它可以在 Chrome 上播放(也许在 iDevices 上),但不能在 Firefox 等上播放。

您能否提供更多关于它在哪个浏览器上运行以及在哪个浏览器上不运行的信息?

于 2013-01-05T09:41:55.380 回答
0

我在使用 VideoJS 时经历的一些事情:

  • 自动播放是个坏主意。如果您希望模态框出现并且视频立即开始播放,它只会在某些浏览器中正常工作。大多数其他浏览器都有问题(即音频流的两个实例将开始播放)

  • $("#videoPlayer").html('') 你基本上是在吹掉 HTML。如果您担心性能,请避免这种情况。尝试重新占用现有的代码/标签。大多数开发人员认为通过删除 HTML 可以节省内存——不一定是这样。

这不是 VideoJS 的问题。我见过许多不同的视频 JS 库,它们不能很好地处理 HTML5 视频。

于 2013-02-22T03:41:19.720 回答