问题描述:当测试视频数很少的时候,id和视频索引很像,就容易搞混
当上下滑动视频的时候,activeId是当前一条数据库记录的id字段,而不是这条数据库记录的index。而且微信小程序只输出了activeId
当我们使用videoslist[activeId-1]来获取当前视频的时候,这种取法就是错误的。activeId-1不是index。
此时修改源代码:video-swiper 中的index.js的168行,
改之前:
this.triggerEvent('change', { activeId: curQueue[current].id });
改之后:
this.triggerEvent('change', { activeId: curQueue[current].id,current_video:curQueue[current] });
这样就可以在change方法中得到当前视频记录数据了。(不需要关心它的索引)
var active_id = e.detail.activeId
var current_video = e.detail.current_video
因为只有在change方法调用后才拿到当前视频数据,所以current_video这个数据需要初始化,=videolist[0],
原先设想在页面中使用{{videoslist[index].content}},因为没有索引就无法使用,我们直接用
{{current_video.content}}
上面改完后视频顺序正确了,却发现播放器从第二个视频开始,接着改。
video-swiper index.js 151行_this.playCurrent(0);//1改成0
修改index.wxml 第7行 current="0" //1改成0
改完上述三处后在调试暂停的时候又有问题,就是第一个视频无法暂停,后面的都可以,找了半天又有个地方改下
index.js 128行 _last=0//1改成0
最后也是最重要的一个地方就是他的源码有个地方有问题,那就是
this.triggerEvent('change', {
activeId: curQueue[current].id,
current_video: curQueue[current]
});
他的位置不对,不应该放前面,应该放后面,像这样
this.setData({
curQueue: curQueue,
circular: circular
});
this.triggerEvent('change', {
activeId: curQueue[current].id,
current_video: curQueue[current]
});
this.playCurrent(current);