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
我也出现了同样的问题,看到你发的这条信息“video-swiper组件setData(videoList)触发的方法中的参数newVal并不是新添加的视频列表,而是整个videoList(包括旧的数据)”,突然明白了,现在已解决重复播放旧视频的问题,解决方法:
1、设置一个辅助的数组,用追加新数据的方式来存放所有的视频列表数据,第一页、第二页、第三页依次追加即可,这样方便将视频源的视频列表的activeID设置为视频列表的索引index
2、第一页数据直接赋值给videoList,加载第二页数据后,只将第二页的新数据赋值给videoList,而不是将第二页数据先追加到第一页数据后,再将这两页的数据一起赋值给videoList,这样video-swiper就可以按顺序一直播放最新的视频了
3、缺点:只要下滑一直有视频,那么视频源的第一个视频会一直播放不到
大佬你的问题解决了没