61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
import tkinter as tk
|
|
from tkinter import messagebox, Listbox
|
|
from models.MusicPlayer import MusicPlayerModel
|
|
|
|
class MusicPlayerApp:
|
|
def __init__(self, root):
|
|
self.root = root
|
|
self.root.title("Reproductor de Música")
|
|
self.root.geometry("400x300")
|
|
|
|
self.player = MusicPlayerModel()
|
|
self.songs, self.message = self.player.load_songs()
|
|
|
|
# Lista de canciones
|
|
self.song_listbox = Listbox(self.root, bg="white", fg="black", font=("Arial", 12))
|
|
self.song_listbox.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
|
|
self.refresh_song_list()
|
|
|
|
# Botones
|
|
self.button_frame = tk.Frame(self.root)
|
|
self.button_frame.pack(pady=10)
|
|
|
|
self.play_button = tk.Button(self.button_frame, text="Reproducir", command=self.play_song, width=12)
|
|
self.play_button.grid(row=0, column=0, padx=5)
|
|
|
|
self.stop_button = tk.Button(self.button_frame, text="Detener", command=self.stop_song, width=12)
|
|
self.stop_button.grid(row=0, column=1, padx=5)
|
|
|
|
self.refresh_button = tk.Button(self.button_frame, text="Actualizar", command=self.refresh_song_list, width=12)
|
|
self.refresh_button.grid(row=0, column=2, padx=5)
|
|
|
|
def refresh_song_list(self):
|
|
"""Carga las canciones en el Listbox desde la carpeta resources."""
|
|
self.songs, self.message = self.player.load_songs()
|
|
self.song_listbox.delete(0, tk.END)
|
|
if self.songs:
|
|
for song in self.songs:
|
|
self.song_listbox.insert(tk.END, song)
|
|
else:
|
|
messagebox.showinfo("Información", self.message)
|
|
|
|
def play_song(self):
|
|
"""Reproduce la canción seleccionada."""
|
|
selected = self.song_listbox.curselection()
|
|
if not selected:
|
|
messagebox.showwarning("Advertencia", "Selecciona una canción para reproducir.")
|
|
return
|
|
song_name = self.song_listbox.get(selected)
|
|
message = self.player.play_song(song_name)
|
|
messagebox.showinfo("Reproduciendo", message)
|
|
|
|
def stop_song(self):
|
|
"""Detiene la reproducción."""
|
|
message = self.player.stop_song()
|
|
messagebox.showinfo("Detenido", message)
|
|
|
|
if __name__ == "__main__":
|
|
root = tk.Tk()
|
|
app = MusicPlayerApp(root)
|
|
root.mainloop()
|