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