账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    video 标签问题
    • 师傅被妖怪抓走了2020-02-27 20:55
    105
    0

    需求背景

    需要对 video 的控制(play、pause、seeked)做相应的业务回调处理,此处指人为手动操作,点击播放、暂停、拖动进度条等。

    但是有特殊场景是由其他业务触发 video 的操作,直接 js 操作 video.play() 等方法,此时就不应该执行上述回调处理。

    当前问题

    我手动点击了播放,触发了业务回调,导致其他业务场景触发我的 js 执行了 video.play(),导致形成 loop 循环。

    解决思路

    需要区分主动操作(人为)和被动(js 调用),我加上一个标志位 flag,当有触摸点击事件时置为 true,业务场景触发 video.play() 时置为 false。如此在 video 对应的操作回调中就能区分是否需要执行业务处理。

    伪码

    video.addEventListener('play', ()=> {
        if(flag) {
            // 业务处理
            doService();
        }
    });
    
    function doSomething() {
        flag = false;
        video.play();
        // doSomething...
    }

    问题是 flag = true 设置的契机不知道在哪里,还望有人帮助解答下,感激不尽。

    前端小白至上~

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 色牲 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部