fix(player): 预热直出并与视频统一封面布局
This commit is contained in:
1 parent
a3a79f7068
commit
48b4e67d34
9 files changed
+119
-104
No files matched your search
@@ -256,26 +256,37 @@ class SpriteCropPreview extends StatelessWidget {
|
||||
super.key,
|
||||
required this.image,
|
||||
required this.sourceRect,
|
||||
this.fit = BoxFit.cover,
|
||||
});
|
||||
|
||||
final ui.Image image;
|
||||
final ui.Rect sourceRect;
|
||||
final BoxFit fit;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => CustomPaint(
|
||||
painter: _SpriteCropPainter(image: image, sourceRect: sourceRect),
|
||||
painter: _SpriteCropPainter(
|
||||
image: image,
|
||||
sourceRect: sourceRect,
|
||||
fit: fit,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
class _SpriteCropPainter extends CustomPainter {
|
||||
const _SpriteCropPainter({required this.image, required this.sourceRect});
|
||||
const _SpriteCropPainter({
|
||||
required this.image,
|
||||
required this.sourceRect,
|
||||
required this.fit,
|
||||
});
|
||||
|
||||
final ui.Image image;
|
||||
final ui.Rect sourceRect;
|
||||
final BoxFit fit;
|
||||
|
||||
@override
|
||||
void paint(Canvas canvas, Size size) {
|
||||
final fitted = applyBoxFit(BoxFit.cover, sourceRect.size, size);
|
||||
final fitted = applyBoxFit(fit, sourceRect.size, size);
|
||||
final sourceOffset = Alignment.center.inscribe(
|
||||
fitted.source,
|
||||
Offset.zero & sourceRect.size,
|
||||
@@ -302,7 +313,9 @@ class _SpriteCropPainter extends CustomPainter {
|
||||
|
||||
@override
|
||||
bool shouldRepaint(covariant _SpriteCropPainter oldDelegate) =>
|
||||
oldDelegate.image != image || oldDelegate.sourceRect != sourceRect;
|
||||
oldDelegate.image != image ||
|
||||
oldDelegate.sourceRect != sourceRect ||
|
||||
oldDelegate.fit != fit;
|
||||
}
|
||||
|
||||
String _format(Duration value) {
|
||||
|
||||
Reference in new issue
Block a user