Az alábbiakban egy egyszerű és látványos, grafikus felülettel (GUI) rendelkező MP3-lejátszó programot készíthetünk el Python segítségével. A zenelejátszáshoz a pygame modult, a grafikus felülethez pedig a beépített tkinter könyvtárat használtam.
------------
import os
import tkinter as tk
from tkinter import filedialog, messagebox
from pygame import mixer
class ZeneLejatszo:
def __init__(self, root):
self.root = root
self.root.title("Python MP3 Lejátszó")
self.root.geometry("400x400")
self.root.configure(bg="#2c3e50")
# Pygame mixer inicializálása
mixer.init()
# Változók
self.aktualis_zene = ""
self.szuneteltetve = False
# Felhasználói felület létrehozása
self.letrehozo_gui()
def letrehozo_gui(self):
# Címke
self.cim_label = tk.Label(self.root, text="Nincs kiválasztva zene", bg="#2c3e50", fg="#ecf0f1", font=("Arial", 12))
self.cim_label.pack(pady=30)
# Gombok kerete
gomb_keret = tk.Frame(self.root, bg="#2c3e50")
gomb_keret.pack(pady=10)
# Gombok
self.megnyitas_btn = tk.Button(gomb_keret, text="Megnyitás", width=7, command=self.zene_betoltes)
self.megnyitas_btn.grid(row=0, column=0, padx=5, pady=5)
self.lejatszas_btn = tk.Button(gomb_keret, text="Lejátszás", width=7, command=self.zene_lejatszas)
self.lejatszas_btn.grid(row=0, column=1, padx=5, pady=5)
self.szunet_btn = tk.Button(gomb_keret, text="Szünet", width=7, command=self.zene_szunet)
self.szunet_btn.grid(row=0, column=2, padx=5, pady=5)
self.leallitas_btn = tk.Button(gomb_keret, text="Leállítás", width=7, command=self.zene_leallitas)
self.leallitas_btn.grid(row=0, column=3, padx=5, pady=5)
def zene_betoltes(self):
fajl = filedialog.askopenfilename(initialdir="/", title="Válassz egy MP3 fájlt", filetypes=(("MP3 Files", "*.mp3"), ("All Files", "*.*")))
if fajl:
self.aktualis_zene = fajl
fajl_nev = os.path.basename(self.aktualis_zene)
self.cim_label.config(text=f"Kiválasztva: {fajl_nev}")
def zene_lejatszas(self):
if self.aktualis_zene:
try:
mixer.music.load(self.aktualis_zene)
mixer.music.play()
self.cim_label.config(text=f"Most szól: {os.path.basename(self.aktualis_zene)}")
self.szuneteltetve = False
except Exception as e:
messagebox.showerror("Hiba", "Nem sikerült lejátszani a zenét.")
else:
messagebox.showwarning("Figyelmeztetés", "Kérlek, először válassz ki egy zenét!")
def zene_szunet(self):
if self.aktualis_zene:
if not self.szuneteltetve:
mixer.music.pause()
self.szuneteltetve = True
self.szunet_btn.config(text="Folytatás")
else:
mixer.music.unpause()
self.szuneteltetve = False
self.szunet_btn.config(text="Szünet")
def zene_leallitas(self):
if self.aktualis_zene:
mixer.music.stop()
self.cim_label.config(text="Zene leállítva")
self.szunet_btn.config(text="Szünet")
# Futtatás
if __name__ == "__main__":
ablak = tk.Tk()
app = ZeneLejatszo(ablak)
ablak.mainloop()
--------------
Nincsenek megjegyzések:
Megjegyzés küldése