28 lines
625 B
Python
28 lines
625 B
Python
import pyaudio
|
|
import threading
|
|
|
|
|
|
class AudioManager:
|
|
_instance = None
|
|
_lock = threading.Lock()
|
|
|
|
def __new__(cls):
|
|
with cls._lock:
|
|
if cls._instance is None:
|
|
cls._instance = super(AudioManager, cls).__new__(cls)
|
|
cls._instance.pa = pyaudio.PyAudio()
|
|
print("🔊 AudioManager: PyAudio initialized (Global)")
|
|
return cls._instance
|
|
|
|
def get_pyaudio(self):
|
|
return self.pa
|
|
|
|
def cleanup(self):
|
|
if self.pa:
|
|
self.pa.terminate()
|
|
self.pa = None
|
|
|
|
|
|
def get_audio_manager():
|
|
return AudioManager()
|