ProjectKevin/models/MusicPlayer.py

38 lines
1.2 KiB
Python

import os
from pygame import mixer
class MusicPlayerModel:
def __init__(self):
self.music_folder = "resources"
self.current_song = None
mixer.init()
def load_songs(self):
"""Carga las canciones desde la carpeta de recursos."""
if not os.path.exists(self.music_folder):
os.makedirs(self.music_folder)
return [], "Carpeta 'resources' creada. Agrega canciones."
songs = [f for f in os.listdir(self.music_folder) if f.endswith(".mp3")]
if not songs:
return [], "No se encontraron archivos MP3 en 'resources'."
return songs, "Canciones cargadas con éxito."
def play_song(self, song_name):
"""Reproduce una canción por su nombre."""
song_path = os.path.join(self.music_folder, song_name)
try:
mixer.music.load(song_path)
mixer.music.play()
self.current_song = song_name
return f"Reproduciendo: {song_name}"
except Exception as e:
return f"Error al reproducir: {e}"
def stop_song(self):
"""Detiene la reproducción de música."""
mixer.music.stop()
self.current_song = None
return "Reproducción detenida."