08110920
V2EX  ›  问与答

前端大神请进!如何用 js 控制视频不让其快进

  •  
  •   08110920 · Jul 19, 2020 · 3484 views
    This topic created in 2195 days ago, the information mentioned may be changed or developed.
    目前在弄一个微信公众号的学习网课功能,然后要求是需要禁止快进和回退。

    隐藏进度条的方法可能不适应所有手机。

    求前端大神 来解决一下 如何用 js 去鉴定视频是否快进或者回退。然后对其进行禁止或者返回视频原点。
    13 replies    2020-07-20 12:29:29 +08:00
    ciaoly
        1
    ciaoly  
       Jul 19, 2020 via Android
    非大神,抛砖引玉。
    https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video

    h5 的 video 提供了几个事件回调可以监听进度条变动和播放时间变动,也许可以在后台开个计时器做时间比对。
    whypool
        2
    whypool  
       Jul 19, 2020
    视频用 canvas 画出来,可以完美控制

    控制条的功能覆盖
    lizheming
        3
    lizheming  
       Jul 19, 2020
    基本上就是记录当前播放的时间,ontimeupdate 的时候根据这个缓存的时间做对比,如果大于多少的时候则认为是快进,重新设置为缓存时间,否则就直接更新为缓存时间。
    08110920
        4
    08110920  
    OP
       Jul 19, 2020
    @lizheming 可以留个联系方式,来弄弄吗?
    nuk
        5
    nuk  
       Jul 19, 2020
    加个透明遮罩层。。点击只能播放 /暂停
    ysc3839
        6
    ysc3839  
       Jul 19, 2020
    要求学习多长时间这种,建议后端直接记录开始学习的时间,然后看当前时间够不够,前端完全不用限制,这么做简单还没有明显漏洞。
    ThirdFlame
        7
    ThirdFlame  
       Jul 19, 2020
    后台判定 如果该视频的学习时长小于视频文件时长,判定该学习未完成即可。 让快进 做无用功。
    如果仅仅是不允许自己调整进度的话,那这个方法无效。
    08110920
        8
    08110920  
    OP
       Jul 19, 2020
    @nuk 放大全屏后 好像就不能这样了
    yuzo555
        9
    yuzo555  
       Jul 19, 2020 via Android
    seeked 事件时判断时间是否超过缓存的最大时间,缓存的最大时间在 timeupdate 事件的时候记录。
    08110920
        10
    08110920  
    OP
       Jul 19, 2020
    @yuzo555 可以留个联系方式,来弄弄吗? 付费的
    BreadKiller
        11
    BreadKiller  
       Jul 19, 2020
    npe
        12
    npe  
       Jul 20, 2020 via iPhone
    计时器....
    raaaaaar
        13
    raaaaaar  
       Jul 20, 2020 via Android
    就是你把鬼子引导这里来的?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2616 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 16:03 · PVG 00:03 · LAX 09:03 · JFK 12:03
    ♥ Do have faith in what you're doing.