mod: 优化弹幕请求
This commit is contained in:
@ -10,6 +10,8 @@ class PlDanmakuController {
|
|||||||
// 按 6min 分段
|
// 按 6min 分段
|
||||||
int segCount = 0;
|
int segCount = 0;
|
||||||
List<DmSegMobileReply> dmSegList = [];
|
List<DmSegMobileReply> dmSegList = [];
|
||||||
|
// 已请求的段落标记
|
||||||
|
List<int> hasrequestSeg = [];
|
||||||
int currentSegIndex = 1;
|
int currentSegIndex = 1;
|
||||||
int currentDmIndex = 0;
|
int currentDmIndex = 0;
|
||||||
|
|
||||||
|
|||||||
@ -95,7 +95,9 @@ class _PlDanmakuState extends State<PlDanmaku> {
|
|||||||
// 根据position判断是否有已缓存弹幕。没有则请求对应段
|
// 根据position判断是否有已缓存弹幕。没有则请求对应段
|
||||||
int segIndex = (currentPosition / (6 * 60 * 1000)).ceil();
|
int segIndex = (currentPosition / (6 * 60 * 1000)).ceil();
|
||||||
segIndex = segIndex < 1 ? 1 : segIndex;
|
segIndex = segIndex < 1 ? 1 : segIndex;
|
||||||
if (ctr.dmSegList[segIndex - 1].elems.isEmpty) {
|
if (ctr.dmSegList[segIndex - 1].elems.isEmpty &&
|
||||||
|
!ctr.hasrequestSeg.contains(segIndex - 1)) {
|
||||||
|
ctr.hasrequestSeg.add(segIndex - 1);
|
||||||
ctr.currentSegIndex = segIndex;
|
ctr.currentSegIndex = segIndex;
|
||||||
EasyThrottle.throttle('follow', const Duration(seconds: 1), () {
|
EasyThrottle.throttle('follow', const Duration(seconds: 1), () {
|
||||||
ctr.queryDanmaku();
|
ctr.queryDanmaku();
|
||||||
|
|||||||
Reference in New Issue
Block a user