From 6611231ff4f5e6f753c0e2cc28bbd4518480eb53 Mon Sep 17 00:00:00 2001 From: shaojunye Date: Mon, 19 Aug 2024 13:54:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=A7=86=E9=A2=91=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E5=99=A8=E6=92=AD=E6=94=BE=E6=9C=AC=E5=9C=B0=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=89=8D=E7=9A=84=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shaojunye --- .../videoplayer/VideoPlayerApiImpl.ets | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/video_player/video_player_ohos/ohos/src/main/ets/components/videoplayer/VideoPlayerApiImpl.ets b/packages/video_player/video_player_ohos/ohos/src/main/ets/components/videoplayer/VideoPlayerApiImpl.ets index 69437d5ce..c35469940 100644 --- a/packages/video_player/video_player_ohos/ohos/src/main/ets/components/videoplayer/VideoPlayerApiImpl.ets +++ b/packages/video_player/video_player_ohos/ohos/src/main/ets/components/videoplayer/VideoPlayerApiImpl.ets @@ -78,6 +78,27 @@ export class VideoPlayerApiImpl { let textureId: number = flutterRenderer.getTextureId(); Log.i(TAG, "enter getRawFd, textureId=" + textureId); let surfaceTextureEntry: SurfaceTextureEntry = flutterRenderer.registerTexture(textureId); + if(asset != null) { + let avImageGenerator = await media.createAVImageGenerator(); + avImageGenerator.fdSrc = await this.getContext().resourceManager.getRawFd("flutter_assets/" + asset); + let pixelMap = await avImageGenerator.fetchFrameByTime(0, media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC, { + width: -1, + height: -1 + }); + avImageGenerator.release(); + flutterRenderer.setTextureBackGroundPixelMap(textureId, pixelMap); + } else if(uri != null && uri.startsWith("fd://")) { + let avImageGenerator = await media.createAVImageGenerator(); + avImageGenerator.fdSrc = { + fd: Number.parseInt(uri.replace("fd://", "")) + }; + let pixelMap = await avImageGenerator.fetchFrameByTime(0, media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC, { + width: -1, + height: -1 + }); + avImageGenerator.release(); + flutterRenderer.setTextureBackGroundPixelMap(textureId, pixelMap); + } let eventChannel: EventChannel = new EventChannel(this.flutterState.getBinaryMessenger(), "flutter.io/videoPlayer/videoEvents" + textureId.toString()); if (asset != null) { let rawFileDescriptor: resourceManager.RawFileDescriptor = await this.getContext().resourceManager.getRawFd("flutter_assets/" + asset); -- Gitee