fix(player): 收紧图片与快速切集资源占用

This commit is contained in:
Zhou Weidong committed 2026-10-26 15:10:02 +08:00
1 parent 2fef7470e0
commit 80c962a95c
10 files changed
+281 -30

No files matched your search

@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
import '../../../core/config/app_config.dart';
import '../../../core/data/services/sprite_thumbnail_axis.dart';
import '../../../core/theme/app_colors.dart';
import '../../../core/widgets/remote_image.dart';
import 'scrub_preview_card.dart';
enum PlayerOpeningFallback { handoff, poster, thumbnails, black }
@@ -149,12 +150,25 @@ class _PlayerOpeningFrameState extends State<PlayerOpeningFrame> {
children: [
const ColoredBox(color: AppColors.mediaBlack),
if (_hasPoster)
Image.network(
AppConfig.mediaUrl(widget.posterUrl!.trim()),
key: const Key('player-opening-poster'),
fit: widget.fit,
gaplessPlayback: true,
errorBuilder: (_, _, _) => _handlePosterError(),
LayoutBuilder(
builder: (context, constraints) {
final pixelRatio = MediaQuery.devicePixelRatioOf(context);
return Image.network(
AppConfig.mediaUrl(widget.posterUrl!.trim()),
key: const Key('player-opening-poster'),
fit: widget.fit,
cacheWidth: resolveImageDecodePixels(
constraints.maxWidth,
pixelRatio,
),
cacheHeight: resolveImageDecodePixels(
constraints.maxHeight,
pixelRatio,
),
gaplessPlayback: true,
errorBuilder: (_, _, _) => _handlePosterError(),
);
},
)
else
_spriteOrBlack(),