From 220b86e95729118d65c22f2277df638833115c40 Mon Sep 17 00:00:00 2001 From: Anthony Samms Date: Sat, 13 Sep 2025 02:53:23 -0400 Subject: [PATCH] Update audio.py --- libs/audio.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libs/audio.py b/libs/audio.py index 5d503e0..46b9bf9 100644 --- a/libs/audio.py +++ b/libs/audio.py @@ -3,6 +3,7 @@ import queue import time from pathlib import Path from threading import Lock, Thread +from concurrent.futures import ThreadPoolExecutor from typing import Optional import soundfile as sf @@ -241,6 +242,8 @@ class Music: # Thread safety self.lock = Lock() + self.buffer_executor = ThreadPoolExecutor(max_workers=1) + self.buffer_future = None # Load audio self._load_audio() @@ -326,10 +329,14 @@ class Music: def _fill_buffer(self): """Fill the audio buffer from appropriate source""" + if self.buffer_future and not self.buffer_future.done(): + return True if self.uses_file_streaming: - return self._fill_buffer_from_file() + self.buffer_future = self.buffer_executor.submit(self._fill_buffer_from_file) + return True else: - return self._fill_buffer_from_memory() + self.buffer_future = self.buffer_executor.submit(self._fill_buffer_from_memory) + return True def _fill_buffer_from_file(self): """Stream buffer from file"""