【问题标题】:Multiple initialization of Video.js player on ajax loaded part of page在页面的 ajax 加载部分上对 Video.js 播放器进行多次初始化
【发布时间】:2012-12-13 18:07:36
【问题描述】:

几个月前Jean-François 提出了类似的问题,但我的问题更棘手。

我必须在名为“ajax Content”的节点中加载不同的内容。
第一次初始化播放器并且视频显示了自己的控制栏皮肤。

但是,如果第二次加载另一部电影或相同的电影,则 Video.js 脚本不会初始化并运行。 如果我使用“remove()”或“empty()”清除节点,也会发生这种情况。

这是外部 html 文件的一部分:

<div id="video">
<video id="html5_video" class="video-js vjs-ms-skin" autoplay controls preload>
    <source src="fileadmin/themen/de/iagos.mp4" type='video/mp4' />
</video>
<div class="ajaxLoadClose"></div>

这是 jQuery 脚本

$(".ajax-content").load(pfad+"#video",function(responce,status,xhr){
if (status=="success")
{

    _V_("html5_video");
    $(".ajax-content").css("display","block");
    $(".ajaxLoadClose").click(function() {
        var vidBig = $(this).parent().find("video").get(0);
        vidBig.pause();
        $(".ajax-content").fadeOut('slow', function() {
            $('.ajax-content').children().remove();
        });/**/
    });
}

});

是否有任何类型的重置?感谢您的帮助。

【问题讨论】:

    标签: jquery ajax dynamic load video.js


    【解决方案1】:

    如果您为每个视频创建一个新播放器而不转到新页面,它将开始构建播放器实例,因为对播放器的引用按其 ID 存储在 _V_.players 对象中。如果您致电player.destroy(),它将删除播放器引用。只需确保您没有其他任何引用玩家的东西。您还需要从页面中删除播放器 .video-js div。在以后的版本中, player.destroy() 函数也会这样做。

    有关详细讨论,请参阅this。 :)

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 2017-02-14
      • 1970-01-01
      相关资源
      最近更新 更多