收藏
回答

如何解决video-swiper组件重复播放的问题?

video-swiper组件setData(videoList)触发的方法中的参数newVal并不是新添加的视频列表,而是整个videoList(包括旧的数据)。处理了之后,会存在播放旧视频的问题。

原组件是以3来分割,我用了4,不过这没关系,视频都正常加载和获取了。问题在于,接口最后一次获取返回了2个视频而不是4个视频,那么curQueue中curQueue[0]、curQueue[1]都是新的视频的url,而curQueue[2]、curQueue[3]还是旧的视频url。导致滑到“最后一个视频”再往下拉,仍然可以继续滑动两次。而我想要的效果是滑到“最后一个视频”就滑不动这样。

我尝试了很多种方法,包括nextQueue填充值,让他始终长度为4,当nextQueue[i]为空的时候return,但是无效。

我发现拉到最后一个视频再往下滑会遇到源码中"diff===0"的情况,本来应该return,打了断点,确实return了,但是依然可以滑到下一个旧的视频。

ballball各位大神出手相救,或者让我死了这条心换个组件qwq

回答关注问题邀请回答
收藏

2 个回答

  • 老高
    老高
    2020-07-24

    我也出现了同样的问题,看到你发的这条信息“video-swiper组件setData(videoList)触发的方法中的参数newVal并不是新添加的视频列表,而是整个videoList(包括旧的数据)”,突然明白了,现在已解决重复播放旧视频的问题,解决方法:

    1、设置一个辅助的数组,用追加新数据的方式来存放所有的视频列表数据,第一页、第二页、第三页依次追加即可,这样方便将视频源的视频列表的activeID设置为视频列表的索引index

    2、第一页数据直接赋值给videoList,加载第二页数据后,只将第二页的新数据赋值给videoList,而不是将第二页数据先追加到第一页数据后,再将这两页的数据一起赋值给videoList,这样video-swiper就可以按顺序一直播放最新的视频了

    3、缺点:只要下滑一直有视频,那么视频源的第一个视频会一直播放不到

    2020-07-24
    有用 1
    回复
  • Aか潘   💯
    Aか潘 💯
    2020-07-23

    大佬你的问题解决了没

    2020-07-23
    有用
    回复 1
    • 无隅
      无隅
      2020-07-23
      没呢
      2020-07-23
      回复
登录 后发表内容
问题标签