From 3cda1a65dc0425c332ed2eb3619cd88531f0ea49 Mon Sep 17 00:00:00 2001 From: ArthurHeitmann <37270165+ArthurHeitmann@users.noreply.github.com> Date: Wed, 7 Dec 2022 03:34:00 +0100 Subject: [PATCH] fix: Duration precision on Windows (#1342) * fix: Duration precision on Windows * fix: duration display on windows, when duration is unknown/infinity --- .../example/integration_test/tabs/stream_tab.dart | 4 ++-- .../audioplayers_windows/windows/MediaFoundationHelpers.h | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/audioplayers/example/integration_test/tabs/stream_tab.dart b/packages/audioplayers/example/integration_test/tabs/stream_tab.dart index fbf50e418..40e7fddf2 100644 --- a/packages/audioplayers/example/integration_test/tabs/stream_tab.dart +++ b/packages/audioplayers/example/integration_test/tabs/stream_tab.dart @@ -102,13 +102,13 @@ Future testStreamsTab( extension StreamWidgetTester on WidgetTester { // Precision for duration & position: // Android: two tenth of a second - // Windows: second + // Windows: millisecond // Linux: second // Web: second // Update interval for duration & position: // Android: two tenth of a second - // Windows: second + // Windows: ~250ms // Linux: second // Web: second diff --git a/packages/audioplayers_windows/windows/MediaFoundationHelpers.h b/packages/audioplayers_windows/windows/MediaFoundationHelpers.h index a7941df57..d74a1b30b 100644 --- a/packages/audioplayers_windows/windows/MediaFoundationHelpers.h +++ b/packages/audioplayers_windows/windows/MediaFoundationHelpers.h @@ -148,7 +148,9 @@ constexpr uint64_t c_hnsPerSecond = 10000000; template inline uint64_t ConvertSecondsToHns(SecondsT seconds) { - return static_cast(seconds) * c_hnsPerSecond; + if (isinf(seconds)) + return 0; + return static_cast(seconds * c_hnsPerSecond); } template