From 5596d9523d5ad983a78d834925a2dd94bc07268c Mon Sep 17 00:00:00 2001 From: canxin Date: Tue, 23 Apr 2024 21:33:54 +0800 Subject: [PATCH] Bypass BufferingProgress interface not supported --- just_audio_windows/windows/player.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/just_audio_windows/windows/player.hpp b/just_audio_windows/windows/player.hpp index a341e42f5..526b3aacc 100644 --- a/just_audio_windows/windows/player.hpp +++ b/just_audio_windows/windows/player.hpp @@ -514,10 +514,23 @@ class AudioPlayer { auto now = std::chrono::system_clock::now(); + // Try to get the buffering progress or use 1 if an error occurs + double bufferingProgress; + try + { + bufferingProgress = session.BufferingProgress(); + } + catch (...) + { + // If an error occurs, log it and use 1 as the buffering progress + std::cerr << "[just_audio_windows]: Broadcast playback evcent error: Error accessing BufferingProgress. Using default value of 1." << std::endl; + bufferingProgress = 1; + } + eventData[flutter::EncodableValue("processingState")] = flutter::EncodableValue(processingState(session.PlaybackState())); eventData[flutter::EncodableValue("updatePosition")] = flutter::EncodableValue(TO_MICROSECONDS(session.Position())); //int eventData[flutter::EncodableValue("updateTime")] = flutter::EncodableValue(TO_MILLISECONDS(now.time_since_epoch())); //int - eventData[flutter::EncodableValue("bufferedPosition")] = flutter::EncodableValue((int64_t)(duration * session.BufferingProgress())); //int + eventData[flutter::EncodableValue("bufferedPosition")] = flutter::EncodableValue((int64_t)(duration * bufferingProgress)); //int eventData[flutter::EncodableValue("duration")] = flutter::EncodableValue(duration); //int if (mediaPlaybackList.Items().Size() > 0) {