fix(player): 使用高清首帧并稳定切集占位

This commit is contained in:
Zhou Weidong committed 2026-10-26 14:58:00 +08:00
1 parent 0cb0ab0613
commit 2fef7470e0
10 files changed
+258 -33

No files matched your search

@@ -17,6 +17,53 @@ sprite_001.jpg#xywh=0,0,160,90
''';
void main() {
test('should_choose_poster_before_thumbnails_when_both_are_available', () {
final service = SpriteThumbnailAxisService(loader: _FakeSpriteLoader());
addTearDown(service.dispose);
final frame =
playerOpeningFrame(
'https://cdn.test/thumbnails.vtt',
posterUrl: 'https://cdn.test/poster.jpg',
spriteSource: service,
fit: BoxFit.cover,
)
as PlayerOpeningFrame;
expect(frame.posterUrl, 'https://cdn.test/poster.jpg');
expect(frame.thumbnailsUrl, 'https://cdn.test/thumbnails.vtt');
expect(frame.fit, BoxFit.cover);
expect(
playerOpeningFallback(
posterUrl: frame.posterUrl,
thumbnailsUrl: frame.thumbnailsUrl,
),
PlayerOpeningFallback.poster,
);
});
testWidgets('should_use_poster_without_decoding_sprite_when_poster_exists', (
tester,
) async {
final loader = _FakeSpriteLoader();
final service = SpriteThumbnailAxisService(loader: loader);
addTearDown(service.dispose);
await tester.pumpWidget(
MaterialApp(
home: PlayerOpeningFrame(
posterUrl: 'https://cdn.test/poster.jpg',
thumbnailsUrl: 'https://cdn.test/thumbnails.vtt',
spriteSource: service,
),
),
);
expect(find.byKey(const Key('player-opening-poster')), findsOneWidget);
expect(find.byKey(const Key('player-opening-sprite')), findsNothing);
expect(loader.vttCalls, 0);
});
testWidgets('should_return_no_opening_frame_when_thumbnails_is_empty', (
tester,
) async {