api.py: play_sound nutzt jetzt kein Thread und keine Busy-Wait-Schleife mehr.

This commit is contained in:
oberon 2026-02-16 21:08:52 +01:00
parent 723e25f05c
commit 434abad282

View File

@ -220,17 +220,13 @@ def api_play_sound():
logger.error(f"Sound-Datei nicht gefunden: {file_path}") logger.error(f"Sound-Datei nicht gefunden: {file_path}")
return jsonify({"success": False, "message": "Sound-Datei nicht gefunden"}), 404 return jsonify({"success": False, "message": "Sound-Datei nicht gefunden"}), 404
# Sound in separatem Thread abspielen (blockiert nicht) # Abspielen (non-blocking, kein eigener Thread nötig)
def play(): try:
try: pygame.mixer.music.load(file_path)
pygame.mixer.music.load(file_path) pygame.mixer.music.play()
pygame.mixer.music.play() except Exception as e:
while pygame.mixer.music.get_busy(): logger.exception(f"Fehler beim Abspielen von {file_path}")
time.sleep(0.1) return jsonify({"success": False, "message": str(e)}), 500
except Exception as e:
logger.error(f"Fehler beim Abspielen von {file_path}: {e}")
threading.Thread(target=play, daemon=True).start()
logger.info(f"Spiele Sound: {sound_entry['name']} ({sound_id})") logger.info(f"Spiele Sound: {sound_entry['name']} ({sound_id})")
return jsonify({"success": True, "message": f"Spiele: {sound_entry['name']}"}) return jsonify({"success": True, "message": f"Spiele: {sound_entry['name']}"})