2013-10-08 22 views
0

我想做一个Ajax调用,然后显示一个HTML 5视频。Html 5视频不工作后,阿贾克斯调用

以下代码不起作用。

$.ajax({ 
      type: "POST", 
      url: "Videos.aspx/GetBlocs", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 

       $("#videoPlayer").html(
        '<video id="Video1" src="" class="video-js vjs-default-skin" ' + 
        ' controls preload="auto" width="640" height="360" ' + 
        ' data-setup=\'{ "techOrder": ["youtube"], "src": "http://www.youtube.com/watch?v=xjS6SftYQaQ" }\'>' + 
        '</video>' 
        ); 

      } 
     }); 

正如你所看到的,我现在甚至不使用ajax回调值。

但是,如果视频在ajax调用之前显示,它就会起作用。

$("#videoPlayer").html(
         '<video id="Video1" src="" class="video-js vjs-default-skin" ' + 
         ' controls preload="auto" width="640" height="360" ' + 
         ' data-setup=\'{ "techOrder": ["youtube"], "src": "http://www.youtube.com/watch?v=xjS6SftYQaQ" }\'>' + 
         '</video>' 
         ); 
      $.ajax({ 
       type: "POST", 
       url: "Videos.aspx/GetBlocs", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        ..... 

       } 
      }); 

编辑:我也在使用video-js和youtube video-js插件。

+0

你怎么知道如果Ajax调用成功增加吗? – Musa

+0

它是成功的。我在那里删除了代码,以简化代码片段。其实,视频播放器有点显示,但保持全黑,从不加载。 – Dave

+0

在可以工作的代码中,您是在创建视频元素之前还是之后加载video.js脚本? – brianchirls

回答

0

固定。发现它,你知道他们称之为... the official doc?是的。那个东西。

当你一个Ajax调用后动态插入视频因此,基本上,你要删除的数据设置的东西,并与videojs

$("#videoPlayer").html('<video id="Video1" src="" class="video-js vjs-default-skin" ' + // preload="auto" 
            ' controls width="640" height="360"></video>'); 

      videojs("Video1", { "techOrder": ["youtube"], "src": "http://www.youtube.com/watch?v=" + youtubeVideoID + "&vq=hd720" }, function() { 

       var v = this; 
       v.on("progress", function() { ... }); 
      }); 
0

你试过在你的success()回调中明确运行videojs吗?

success: function (data) { 

    // Load the HTML here 

    // Initialise the video 
    videojs("Video1", {}, function(){ 
     // Player (this) is initialized and ready. 
    }); 
} 
+0

它为我有的黑色矩形添加了一个等待循环和一个播放按钮。当我检查它时,我可以看到它已经呈现为平面html。它不会被执行并转换为iframe。 – Dave