diff --git a/main.py b/main.py index 71cd93b..27c9377 100644 --- a/main.py +++ b/main.py @@ -7,7 +7,17 @@ from tkinter import messagebox -ALARM_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "alarm", "alarm.wav") +ALARM_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "alarm") +SUPPORTED_FORMATS = (".mp3", ".wav", ".ogg", ".flac") + +def get_alarm_path(): + if os.path.exists(ALARM_DIR): + for file in os.listdir(ALARM_DIR): + if file.lower().endswith(SUPPORTED_FORMATS): + return os.path.join(ALARM_DIR, file) + return os.path.join(ALARM_DIR, "alarm.wav") + +ALARM_PATH = get_alarm_path() ctk.set_appearance_mode("light") ctk.set_default_color_theme("blue") @@ -261,12 +271,13 @@ def _enterTimesup(self): self._sendNotification() def _startAlarm(self): - if not os.path.exists(ALARM_PATH): - print(f"[Warning] Alarm file not found: {ALARM_PATH}") + alarm_path = get_alarm_path() + if not os.path.exists(alarm_path): + print(f"[Warning] Alarm file not found: {alarm_path}") return try: - mixer.music.load(ALARM_PATH) - mixer.music.play(loops=-1) # -1 無限循環 + mixer.music.load(alarm_path) + mixer.music.play(loops=-1) except Exception as e: print(f"[Warning] Failed to play alarm: {e}") @@ -309,4 +320,4 @@ def _onCloseWindow(self): root = ctk.CTk() app = TimerApp(root) root.mainloop() - \ No newline at end of file +