From aa37cfe9a91bb794f4b7ec46b8baf657d1ab56bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Moska=C5=82a?= Date: Thu, 26 Mar 2026 22:25:10 +0100 Subject: [PATCH] fix(android): duration in seconds --- .../java/com/twg/video/core/utils/VideoInformationUtils.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-native-video/android/src/main/java/com/twg/video/core/utils/VideoInformationUtils.kt b/packages/react-native-video/android/src/main/java/com/twg/video/core/utils/VideoInformationUtils.kt index 4d4f3f57..800b9592 100644 --- a/packages/react-native-video/android/src/main/java/com/twg/video/core/utils/VideoInformationUtils.kt +++ b/packages/react-native-video/android/src/main/java/com/twg/video/core/utils/VideoInformationUtils.kt @@ -25,8 +25,9 @@ object VideoInformationUtils { val width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)?.toDoubleOrNull() ?: Double.NaN val height = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)?.toDoubleOrNull() ?: Double.NaN - // Get duration in milliseconds - val duration = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)?.toDoubleOrNull() ?: -1.0 + // METADATA_KEY_DURATION returns milliseconds — convert to seconds to match iOS (CMTimeGetSeconds) + val durationMs = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)?.toDoubleOrNull() ?: -1.0 + val duration = if (durationMs > 0) durationMs / 1000.0 else -1.0 // If we have some valid info, but there is no duration it might be live val isLive = !width.isNaN() && !height.isNaN() && duration <= 0.0