fix(player): 预解码观看全集首帧

This commit is contained in:
Zhou Weidong committed 2026-10-26 17:27:43 +08:00
1 parent 1fc8c4924e
commit c8ec481fc9
5 files changed
+145 -26

No files matched your search

+10 -2
View File
@@ -136,7 +136,11 @@ void main() {
final fullLogic = _pageLogic(tester, fullPlayer);
expect(fullLogic.session, isNot(same(sourceLogic.session)));
final fullPlayerWidget = tester.widget<PlayerPage>(fullPlayer);
expect(fullPlayerWidget.initialFrameBytes, isNotNull);
expect(
fullPlayerWidget.initialFrameBytes != null ||
fullPlayerWidget.initialFrameProvider != null,
isTrue,
);
expect(fullPlayerWidget.revealAfterFirstFrame, isTrue);
final fullPlayerPort = fullLogic.session.active! as VideoPlayerPort;
expect(fullPlayerPort.controller, isNot(same(feedPlayer.controller)));
@@ -265,7 +269,11 @@ void main() {
);
expect(player, findsOneWidget);
final playerWidget = tester.widget<PlayerPage>(player);
expect(playerWidget.initialFrameBytes, isNotNull);
expect(
playerWidget.initialFrameBytes != null ||
playerWidget.initialFrameProvider != null,
isTrue,
);
expect(playerWidget.revealAfterFirstFrame, isTrue);
expect(playerWidget.initialIndex, 1);
+8 -1
View File
@@ -558,7 +558,14 @@ Future<void> _waitForFullPlayer(WidgetTester tester) async {
() => Future<void>.delayed(const Duration(milliseconds: 10)),
);
await tester.pump(const Duration(milliseconds: 16));
if (find.byType(PlayerPage).evaluate().length > 1) return;
if (find
.byWidgetPredicate(
(widget) => widget is PlayerPage && !widget.homeMode,
)
.evaluate()
.isNotEmpty) {
return;
}
}
fail('full player route was not pushed after frame capture');
}