3

我无法理解他们的 api。

首先,不知道为什么他们没有像 youtube 和 vimeo 多年来一直坚持使用 iframe 嵌入方法(和 api 外观)一样保持一致性。

所以经过大量的挖掘,我有了这个来改变视频源。我仍然不确定这是否是嵌入视频的最佳方法?

当我使用 replaceWith 时,问题是不再听到事件(在此示例中为“播放”)。

//head
<script src="//fast.wistia.com/assets/external/E-v1.js" async></script>

<script type="text/javascript">
    jQuery(document).ready(function($) {


var video;

window._wq = window._wq || [];
    _wq.push({ 
    id: '479268413a', 
    options: {
        autoPlay:true
    },
    onReady: function(v) {
        video = v;
        video.bind("play", function(){
            console.log("play");
        })
    }
});

$('#btn-next').on('click', function(){
    video.replaceWith(
    '5bbw8l7kl5', {
        autoPlay:true
    });
}); 
});

    </script>

//身体

<div class="wistia_embed wistia_async_479268413a"></div>
4

2 回答 2

0

我迟到了这个问题,但是如果您正在寻找不需要按照 Kiran 的建议加载所有图像的方法,您可以在 do 之后再次推送您的配置replaceWith


const applyConfig = (id) => {
   window._wq = window._wq || [];
    _wq.push({ 
    id,
    options: {
        autoPlay:true
    },
    onReady: function(v) {
        video = v;
        v.bind("play", function(){
            console.log("play");
        })
    }
});

}

$('#btn-next').on('click', function(){
    video.replaceWith(id);
    applyConfig(id);  
}); 
于 2021-08-14T06:48:11.823 回答
0

您应该做的是在您的页面上拥有所有视频,然后根据点击事件显示和隐藏。(请注意,视频将从 wistia 异步获取。因此这里无需担心性能)

请查看下面的演示。

    $(".wistia-trigger").click(function(){
        var vid = $(this).attr("data-video-id");

        $(".wistia_embed").hide();
        $(".wistia_embed.wistia_async_"+vid).show();

        window._wq = window._wq || [];

        // pause all videos and move time to zero
        _wq.push({ id: "_all", onReady: function(video) {
          video.pause();
          video.time(0);
        }});  

        // start playing current video
        _wq.push({ id: vid, onReady: function(video) {
          video.play();
        }});        
    });
.wistia_embed {
    display: none;
    width: 200px;
    height: 200px;
    float: left;
}

.wistia-trigger {
 float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//fast.wistia.com/assets/external/E-v1.js" async></script>
<div class="wistia_embed wistia_async_479268413a"></div>
<div class="wistia_embed wistia_async_5bbw8l7kl5"></div>
<button class="wistia-trigger" data-video-id="479268413a">
play 479268413a
</button>
<button class="wistia-trigger" data-video-id="5bbw8l7kl5">
play 5bbw8l7kl5
</button>

于 2017-10-11T09:10:13.893 回答