【问题标题】:Pause jQuery Cycle with Video.js使用 Video.js 暂停 jQuery 循环
【发布时间】:2012-04-25 14:40:58
【问题描述】:

我有一个 jquery 循环滑块,当播放视频或到达显示视频的幻灯片时,我需要暂停 。 (这些选项中的任何一个都可以,但我不知道如何暂停具有特定类或 ID 的幻灯片。)我正在使用 video.js 显示视频。

发生的情况是,当我按下播放时,视频开始播放,但当我将鼠标从视频上移开时,它会自动转到下一张幻灯片。如果我点击寻呼机缩略图,它会保持暂停状态,但如果幻灯片正常进行并且我按下播放键,它会遵循循环“超时”设置的规则。

我正在寻找一种在播放视频时暂停幻灯片的方法 - 通过在视频开始播放时调用事件,或者在播放视频幻灯片时完全暂停幻灯片。

我有这个想法:

<script>
    jQuery(document).ready(function($) {    
        $(".project_slides").cycle({
        fx:'fade',
            timeout: 5000,
            prev : '#prev',
            next : '#next',
            pager : '#pager',
            pause: 1,
            pagerAnchorBuilder: function(idx, slide) {
                return '#pager li:eq(' + (idx) + ') a';
            }
        });

        $('#pager a').click(function() { 
            $('.project_slides').cycle('pause'); 
        });

        function pauseitall() {
            $('.project_slides').cycle('pause');
        }   
    });

</script>

在体内:

<div class="project_slides">
    <div class="slide">
        <img src="/media/{{ Slide.media }}" alt="{{ Slide.caption }}" />
    </div>

    <div class="slide">
        <video id="video_11" 
            class="video-js vjs-default-skin" 
            controls width="512" 
            height="406" 
            poster="/media/images/video-poster.png" 
            preload="auto" loop>
            <source type="video/mp4" src="/media/{{ Slide.media }}">
        </video>

        <script>
            $(function() {
                _V_("video_11").ready(function() {
                var myPlayer = this;
                addEvent(myPlayer.video, "play", function () {
                    pauseitall()}, false);
                    myPlayer.play();
                });
            });
        </script>
    </div>
</div>

很明显,pauseitall() 函数没有被正确调用,但我一直在为此苦苦挣扎(在如此多的迭代中),我最终只想在这里发布它,看看是否有人知道解决方案。

供参考,使用jQuery 1.7.2,jquery cycle 2.9999.5,和Video.js 3.2.0

【问题讨论】:

    标签: jquery slider html5-video


    【解决方案1】:

    试试这个:

    myPlayer.addEvent("play", pauseitall);
    

    this is how the docs 指定如何绑定到事件

    【讨论】:

    • 谢谢,但这似乎没有任何效果。 编辑1:我回复后你改变了答案。我认为您在通过 jquery 调用它时必须稍微不同地绑定事件。但我不太确定。我会测试。 编辑 2: 仍然没有工作
    • @the_zero 答案(就像现在一样)应该像文档中指定的那样工作......
    • 我明白,我已将代码更改为myPlayer.addEvent("play", pauseitall);,但它并没有暂停幻灯片。
    • 如果您在拨打play 之后拨打$('.project_slides').cycle('pause'); 会暂停吗?
    • 不幸的是,它没有暂停它。这很好奇。为什么会这样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多