From caf42d3fb9685a8f91ba60d2f651a0470e0323be Mon Sep 17 00:00:00 2001 From: ArthurHeitmann Date: Tue, 6 Dec 2022 15:13:53 +0100 Subject: [PATCH 1/2] fix: Duration precision on Windows --- packages/audioplayers_windows/windows/MediaFoundationHelpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audioplayers_windows/windows/MediaFoundationHelpers.h b/packages/audioplayers_windows/windows/MediaFoundationHelpers.h index a7941df57..25d4146dd 100644 --- a/packages/audioplayers_windows/windows/MediaFoundationHelpers.h +++ b/packages/audioplayers_windows/windows/MediaFoundationHelpers.h @@ -148,7 +148,7 @@ constexpr uint64_t c_hnsPerSecond = 10000000; template inline uint64_t ConvertSecondsToHns(SecondsT seconds) { - return static_cast(seconds) * c_hnsPerSecond; + return static_cast(seconds * c_hnsPerSecond); } template From 140251ec58d3943315735c59415d12e9bda46fe7 Mon Sep 17 00:00:00 2001 From: ArthurHeitmann Date: Tue, 6 Dec 2022 18:11:47 +0100 Subject: [PATCH 2/2] fix: duration display on windows, when duration is unknown/infinity --- .../example/integration_test/tabs/stream_tab.dart | 4 ++-- .../audioplayers_windows/windows/MediaFoundationHelpers.h | 2 ++ 2 files changed, 4 insertions(+), 2 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 25d4146dd..d74a1b30b 100644 --- a/packages/audioplayers_windows/windows/MediaFoundationHelpers.h +++ b/packages/audioplayers_windows/windows/MediaFoundationHelpers.h @@ -148,6 +148,8 @@ constexpr uint64_t c_hnsPerSecond = 10000000; template inline uint64_t ConvertSecondsToHns(SecondsT seconds) { + if (isinf(seconds)) + return 0; return static_cast(seconds * c_hnsPerSecond); }