Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-08-16 10:37:31 +08:00
parent d805306d20
commit f3bad60fb6

View File

@@ -1443,7 +1443,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
), ),
), ),
if (plPlayerController.showSeekPreview) if (!plPlayerController.isLive && plPlayerController.showSeekPreview)
buildSeekPreviewWidget( buildSeekPreviewWidget(
plPlayerController, plPlayerController,
maxWidth, maxWidth,
@@ -1778,8 +1778,9 @@ Widget buildSeekPreviewWidget(
try { try {
VideoShotData data = plPlayerController.videoShot!.data; VideoShotData data = plPlayerController.videoShot!.data;
final isFullScreen = plPlayerController.isFullScreen.value; final double scale =
final double scale = isFullScreen && !plPlayerController.isVertical plPlayerController.isFullScreen.value &&
!plPlayerController.isVertical
? 4 ? 4
: 3; : 3;
double height = 27 * scale; double height = 27 * scale;
@@ -1795,7 +1796,7 @@ Widget buildSeekPreviewWidget(
double imgYSize = data.imgYSize; double imgYSize = data.imgYSize;
return Align( return Align(
alignment: isFullScreen ? Alignment.center : Alignment.center, alignment: Alignment.center,
child: Obx( child: Obx(
() { () {
final index = plPlayerController.previewIndex.value!; final index = plPlayerController.previewIndex.value!;
@@ -1871,10 +1872,7 @@ Future<ui.Image?> _getImg(String url) async {
final fileInfo = await cacheManager.getFileFromCache(cacheKey); final fileInfo = await cacheManager.getFileFromCache(cacheKey);
if (fileInfo != null) { if (fileInfo != null) {
final bytes = await fileInfo.file.readAsBytes(); final bytes = await fileInfo.file.readAsBytes();
final codec = await ui.instantiateImageCodec(bytes); return _loadImg(bytes);
final frame = await codec.getNextFrame();
codec.dispose();
return frame.image;
} else { } else {
final res = await Request().get( final res = await Request().get(
url, url,
@@ -1883,14 +1881,19 @@ Future<ui.Image?> _getImg(String url) async {
if (res.statusCode == 200) { if (res.statusCode == 200) {
final data = res.data; final data = res.data;
cacheManager.putFile(cacheKey, data, fileExtension: 'jpg'); cacheManager.putFile(cacheKey, data, fileExtension: 'jpg');
final codec = await ui.instantiateImageCodec(data); return _loadImg(data);
final frame = await codec.getNextFrame();
return frame.image;
} }
} }
return null; return null;
} }
Future<ui.Image?> _loadImg(Uint8List bytes) async {
final codec = await ui.instantiateImageCodec(bytes);
final frame = await codec.getNextFrame();
codec.dispose();
return frame.image;
}
class _VideoShotImageState extends State<VideoShotImage> { class _VideoShotImageState extends State<VideoShotImage> {
late Size _size; late Size _size;
late Rect _dstRect; late Rect _dstRect;