首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果幻灯片已更改,如何停止视频?

如果幻灯片已更改,如何停止视频?
EN

Stack Overflow用户
提问于 2019-05-17 21:59:08
回答 2查看 342关注 0票数 0

当幻灯片改变时,我需要停止视频。当前代码对变量的更改做出反应,但不会停止视频。我使用Clappr^0.3.3、Vue-cli^3.5.0和Swiper^4.5.0。

我更改了布尔值,将其用于播放器中的触发器:

代码语言:javascript
复制
data: () => ({
    slider_is_move: false,
}),

请求后:

代码语言:javascript
复制
.then(() => {

    // init slider
    new Swiper('.content__slider', {
        // Note: I removed extra options
        on: {
            slideChange: function () {
                this.slider_is_move = true; // if slide is change

                setTimeout(() => {
                    this.slider_is_move = false; // set the previous value
                }, 1500);
            }
        }
    });


    // init clappr (video player)
    if ( document.querySelector('.content-video') ) {
        for (let i = 0; i < this.project_videos.length; i++) {
            new Clappr.Player({
                source: '/storage/' + this.project_videos[i],
                parentId: '#container_' + (this.project_images.length + i),
                mute: true,
                width: document.querySelector('.content-item').offsetWidth,
                height: document.querySelector('.content-item').offsetHeight,
                events: {
                    onPlay: () => {
                        setInterval(() => {
                            if (this.slider_is_move === true) {
                                this.pause();
                            }
                        }, 1000);
                    }
                }
            });
        }
    }

});

如果我添加一个console.log(),代码将正常工作,但它不会停止视频。

代码语言:javascript
复制
onPlay: () => {
    setInterval(() => {
        if (this.slider_is_move === true) {
            this.pause();
        }
    }, 1000);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-20 20:00:53

要使视频在更改幻灯片时停止,需要在代码中添加几行:

将名称添加到对象

代码语言:javascript
复制
let player_video = new Clappr.Player...

然后暂停它

代码语言:javascript
复制
player_video.pause();
票数 0
EN

Stack Overflow用户

发布于 2019-05-17 23:51:21

您应该watch data attribute slider_is_move,并对状态中的任何更改做出反应。

代码语言:javascript
复制
watch: {
    slider_is_move: {
        handler(nowMoving) {
            if (nowMoving) {
                this.pause();
            }
        },
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56187983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档