JW Player - 使用事件处理程序停止(目标)多个玩家

时间:2017-09-07 21:24:15

标签: javascript jquery callback jwplayer jwplayer7

我有一个点击处理程序来激活内置的jwplayer().stop();功能。但是只有我的第一个处理程序执行而另一个处理程序失败(但没有记录错误)。

视频嵌入到视图中的元素div中。

换句话说:我可以停止第一个视频而不是第二个,第三个视频,即使我能够记录function()内的每个后续点击。

思考? 谢谢。

$(function(){
    console.log('ready');
    $('.stop').on('click',function stopVideo () {
       //stop JW player
        if (typeof(jwplayer) != 'undefined') {
                console.log('video stopped');
                jwplayer().stop();

            }         
    })
});

视图

<body>
<div class="container">
    <!-- first video -->
    <div class="jw" style="width: 40%; margin: 10px auto">
        <script src="//content.jwplatform.com/players/4sng2RGX-UQtQ90mG.js"></script>
        <button class="stop" style="padding: 8px 19px; float: right; margin: 10px">stop video</button>
    </div>

    <!-- second video -->
    <div class="jw" style="width: 40%; margin: 10px auto">
        <script src="//content.jwplatform.com/players/z5Jka98V-UQtQ90mG.js"></script>
        <button class="stop" style="padding: 8px 19px; float: right; margin: 10px">stop video</button>
    </div>
</div>
</body>

2 个答案:

答案 0 :(得分:2)

定位多个玩家下的每个JW文档:

  

不包含API调用的ID或索引将始终以页面上的第一个播放器为目标。   https://developer.jwplayer.com/jw-player/docs/developer-guide/api/javascript_api_introduction/

这是一个解决方案:

$(function(){
    //get every video with class .stopVideo
    var count = $('.stopVideo').length;

    $('#stop').on('click',function() {
       //loop through all videos stored in count
       for(var i = 0; i < count; i++) {
        if (typeof(jwplayer) != 'undefined') {
                console.log('video stopped');
                //stop player
                jwplayer(i).stop();

            } 
        }        
    })
});

视图

<body>
<div class="container">
    <!-- first video -->
    <div class="stopVideo">
        <script src="//content.jwplatform.com/players/4sng2RGX-UQtQ90mG.js"></script>
    </div>

    <!-- second video -->
    <div class="stopVideo">
        <script src="//content.jwplatform.com/players/z5Jka98V-UQtQ90mG.js"></script>
    </div>
    <button id="stop">stop video</button>
</div>
</body>

我同意,如果有人在没有说出理由的情况下投票问题,那将是不幸的。坚持下去,快乐编码!

答案 1 :(得分:1)

您的stopVideo()函数无法知道它应该停止哪个视频。 jwplayer只是一些全局变量,可能与您点击的按钮有关,也可能没有。