fix: 字幕查询越界
This commit is contained in:
@ -17,7 +17,11 @@ class PlDanmakuController {
|
|||||||
int segCount = (videoDuration / segmentLength).ceil();
|
int segCount = (videoDuration / segmentLength).ceil();
|
||||||
requestedSeg = List<bool>.generate(segCount, (index) => false);
|
requestedSeg = List<bool>.generate(segCount, (index) => false);
|
||||||
}
|
}
|
||||||
queryDanmaku(calcSegment(progress));
|
try {
|
||||||
|
queryDanmaku(calcSegment(progress));
|
||||||
|
} catch (e) {
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dispose() {
|
void dispose() {
|
||||||
@ -31,16 +35,18 @@ class PlDanmakuController {
|
|||||||
|
|
||||||
void queryDanmaku(int segmentIndex) async {
|
void queryDanmaku(int segmentIndex) async {
|
||||||
assert(requestedSeg[segmentIndex] == false);
|
assert(requestedSeg[segmentIndex] == false);
|
||||||
requestedSeg[segmentIndex] = true;
|
if (requestedSeg.length > segmentIndex) {
|
||||||
final DmSegMobileReply result = await DanmakaHttp.queryDanmaku(
|
requestedSeg[segmentIndex] = true;
|
||||||
cid: cid, segmentIndex: segmentIndex + 1);
|
final DmSegMobileReply result = await DanmakaHttp.queryDanmaku(
|
||||||
if (result.elems.isNotEmpty) {
|
cid: cid, segmentIndex: segmentIndex + 1);
|
||||||
for (var element in result.elems) {
|
if (result.elems.isNotEmpty) {
|
||||||
int pos = element.progress ~/ 100; //每0.1秒存储一次
|
for (var element in result.elems) {
|
||||||
if (dmSegMap[pos] == null) {
|
int pos = element.progress ~/ 100; //每0.1秒存储一次
|
||||||
dmSegMap[pos] = [];
|
if (dmSegMap[pos] == null) {
|
||||||
|
dmSegMap[pos] = [];
|
||||||
|
}
|
||||||
|
dmSegMap[pos]!.add(element);
|
||||||
}
|
}
|
||||||
dmSegMap[pos]!.add(element);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user