fix(player): 使用雪碧图预热首帧兜底
This commit is contained in:
1 parent
48b4e67d34
commit
70d8e0f982
13 files changed
+207
-322
No files matched your search
@@ -114,6 +114,32 @@ void main() {
|
||||
expect(service.hasAxis('https://cdn.test/thumbnails.vtt'), isTrue);
|
||||
});
|
||||
|
||||
testWidgets('should_keep_zero_frames_ready_across_neighbor_episodes', (
|
||||
tester,
|
||||
) async {
|
||||
final loader = _FakeSpriteLoader(vtt: _spriteVtt);
|
||||
final service = SpriteThumbnailAxisService(
|
||||
loader: loader,
|
||||
spriteCacheCapacity: 6,
|
||||
);
|
||||
addTearDown(service.dispose);
|
||||
const current = 'https://cdn.test/episode-1/thumbnails.vtt';
|
||||
const previous = 'https://cdn.test/episode-0/thumbnails.vtt';
|
||||
const next = 'https://cdn.test/episode-2/thumbnails.vtt';
|
||||
|
||||
await Future.wait([
|
||||
service.prepareAt(previous, Duration.zero),
|
||||
service.prepareAt(current, Duration.zero),
|
||||
service.prepareAt(next, Duration.zero),
|
||||
]);
|
||||
|
||||
for (final url in [previous, current, next]) {
|
||||
expect(service.hasAxis(url), isTrue);
|
||||
expect(service.cachedFrameAt(url, Duration.zero), isNotNull);
|
||||
}
|
||||
expect(loader.spriteCalls, hasLength(6));
|
||||
});
|
||||
|
||||
testWidgets('should_refresh_vtt_after_ten_minute_ttl', (tester) async {
|
||||
var now = DateTime(2026, 10, 22);
|
||||
final loader = _FakeSpriteLoader(vtt: _spriteVtt);
|
||||
|
||||
Reference in new issue
Block a user