fix(player): 修复返回首页黑屏并恢复预热
This commit is contained in:
1 parent
6667330ce0
commit
54eb5a60a8
9 files changed
+56
-101
No files matched your search
@@ -109,14 +109,24 @@ void main() {
|
||||
final recommendPlayer = find.byKey(const Key('recommend-feed-player'));
|
||||
final sourceState = tester.state(recommendPlayer);
|
||||
final sourceLogic = _pageLogic(tester, recommendPlayer);
|
||||
await sourceLogic.session.preloadSettled;
|
||||
await tester.pumpAndSettle();
|
||||
final sourceIndex = sourceLogic.session.currentIndex;
|
||||
final sourceDramaId = sourceLogic.currentDramaId;
|
||||
final sourceEpisodeId = sourceLogic.session.currentEpisode.id;
|
||||
final feedPlayer = sourceLogic.session.active! as _RouteVideoPlayer;
|
||||
final feedPlayCalls = feedPlayer.playCalls;
|
||||
final feedPositionBefore = feedPlayer.controller.value.position;
|
||||
final sourceLiveBefore = sourceLogic.session.livePlayerCount;
|
||||
final sourceCurrentSurface = find.descendant(
|
||||
of: recommendPlayer,
|
||||
matching: find.byKey(const ValueKey('player-render-slot-current')),
|
||||
);
|
||||
final sourceSurfaceState = tester.state(sourceCurrentSurface);
|
||||
final sourceSurfaceElement = tester.element(sourceCurrentSurface);
|
||||
expect(sourceDramaId, 'vengeance-demo');
|
||||
expect(sourceIndex, 2);
|
||||
expect(sourceLogic.session.livePlayerCount, 1);
|
||||
expect(sourceLiveBefore, greaterThan(1));
|
||||
|
||||
await tester.tap(find.byKey(const Key('home-feed-full-series')));
|
||||
await tester.pumpAndSettle();
|
||||
@@ -124,6 +134,8 @@ void main() {
|
||||
final fullPlayer = find.byType(PlayerPage);
|
||||
final fullLogic = _pageLogic(tester, fullPlayer);
|
||||
expect(fullLogic.session, isNot(same(sourceLogic.session)));
|
||||
final fullPlayerPort = fullLogic.session.active! as VideoPlayerPort;
|
||||
expect(fullPlayerPort.controller, isNot(same(feedPlayer.controller)));
|
||||
expect(feedPlayer.disposed, isFalse);
|
||||
expect(feedPlayer.playing, isFalse);
|
||||
|
||||
@@ -150,6 +162,8 @@ void main() {
|
||||
final requestsBeforeReturn = playback.requests.length;
|
||||
await tester.tap(find.byKey(const Key('player-back')));
|
||||
await tester.pumpAndSettle();
|
||||
await sourceLogic.session.preloadSettled;
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final currentSurface = find.descendant(
|
||||
of: recommendPlayer,
|
||||
@@ -170,11 +184,15 @@ void main() {
|
||||
expect(sourceLogic.session.loading, isFalse);
|
||||
expect(sourceLogic.session.activeSlotActivated, isTrue);
|
||||
expect(sourceLogic.session.activeSlotPlaying, isTrue);
|
||||
expect(feedPlayer.seekCalls, 1);
|
||||
expect(feedPlayer.seekCalls, 0);
|
||||
expect(feedPlayer.playCalls, greaterThan(feedPlayCalls));
|
||||
expect(playback.requests.length, requestsBeforeReturn);
|
||||
expect(feedPlayer.controller.value.position, Duration.zero);
|
||||
expect(feedPlayer.controller.value.position, feedPositionBefore);
|
||||
expect(feedPlayer.playing, isTrue);
|
||||
expect(sourceLogic.session.livePlayerCount, sourceLiveBefore);
|
||||
expect(sourceLogic.session.livePlayerCount, greaterThan(1));
|
||||
expect(tester.state(currentSurface), same(sourceSurfaceState));
|
||||
expect(tester.element(currentSurface), same(sourceSurfaceElement));
|
||||
expect(
|
||||
find.descendant(
|
||||
of: currentSurface,
|
||||
|
||||
Reference in new issue
Block a user