From caa150a17d83dca3fbd87ff92f4f7f76addf791e Mon Sep 17 00:00:00 2001 From: Mai Trung Duc Date: Sun, 10 Nov 2024 22:43:10 +0800 Subject: [PATCH] fix: bitmap dimension can be 0 on Android --- .../src/main/java/com/videotrim/utils/VideoTrimmerUtil.java | 1 + .../src/main/java/com/videotrim/widgets/VideoTrimmerView.java | 4 +++- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java b/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java index e146555..b078b6a 100644 --- a/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java +++ b/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java @@ -37,6 +37,7 @@ public class VideoTrimmerUtil { // public static final int THUMB_WIDTH = (SCREEN_WIDTH_FULL - RECYCLER_VIEW_PADDING * 2) / VIDEO_MAX_TIME; public static int mThumbWidth = 0; // make it automatic public static final int THUMB_HEIGHT = UnitConverter.dpToPx(50); // x2 for better resolution + public static final int THUMB_WIDTH = UnitConverter.dpToPx(25); // x2 for better resolution private static final int THUMB_RESOLUTION_RES = 2; // double thumb resolution for better quality public static FFmpegSession trim(String inputFile, String outputFile, int videoDuration, long startMs, long endMs, final VideoTrimListener callback) { diff --git a/android/src/main/java/com/videotrim/widgets/VideoTrimmerView.java b/android/src/main/java/com/videotrim/widgets/VideoTrimmerView.java index a9c05b1..67b9bd9 100644 --- a/android/src/main/java/com/videotrim/widgets/VideoTrimmerView.java +++ b/android/src/main/java/com/videotrim/widgets/VideoTrimmerView.java @@ -258,7 +258,9 @@ private void mediaPrepared() { Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(0, MediaMetadataRetriever.OPTION_CLOSEST_SYNC); if (bitmap != null) { - VideoTrimmerUtil.mThumbWidth = VideoTrimmerUtil.THUMB_HEIGHT * bitmap.getWidth() / bitmap.getHeight(); + int bitmapHeight = bitmap.getHeight() > 0 ? bitmap.getHeight() : VideoTrimmerUtil.THUMB_HEIGHT; + int bitmapWidth = bitmap.getWidth() > 0 ? bitmap.getWidth() : VideoTrimmerUtil.THUMB_WIDTH; + VideoTrimmerUtil.mThumbWidth = VideoTrimmerUtil.THUMB_HEIGHT * bitmapWidth / bitmapHeight; } VideoTrimmerUtil.SCREEN_WIDTH_FULL = this.getScreenWidthInPortraitMode(); diff --git a/package.json b/package.json index 18c0a4d..9d89a96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-video-trim", - "version": "2.2.10", + "version": "2.2.11", "description": "Video trimmer for your React Native app", "main": "lib/commonjs/index", "module": "lib/module/index",